Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

252
Vistas
Reemplace la dependencia del jar externo con el proyecto intellij local

Así que tengo un proyecto intellij IDEA (proyecto A) que incluye un montón de bibliotecas jar externas. Actualmente estoy trabajando en una de esas bibliotecas jar externas (proyecto B) y quiero reemplazarlo con el proyecto local (proyecto B) en mi computadora.

Entonces, en resumen: tengo el Proyecto A que depende del contenedor B. Quiero reemplazar el contenedor B con mi proyecto local (proyecto B)

De esa manera, cuando ejecuto el proyecto A, usa el Proyecto B local en lugar del Jar B externo. ¿Alguien sabe alguna buena manera fácil de hacer esto?

over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

Solución con gradle:

En el Proyecto A build.gradle agregue mavenLocal() a los repositorios.

 ... repositories { mavenLocal() maven { url ... } } ...

En el Proyecto B , necesita el complemento maven-publish y la tarea relacionada.

 plugins { id 'maven-publish' } sourceSets { main { java { srcDir 'src/main/java' } } } task sourcesJar(type: Jar) { from sourceSets.main.allJava classifier = 'sources' } publishing { publications { mavenJava(MavenPublication) { artifactId = rootProject.name //or some string eg.: 'projectb' groupId = project.group //or some string eg.: 'com.example' version = project.version //or some string eg.: '1.0.3.9' from components.java artifact sourcesJar } } }

Ahora puede ejecutar la tarea de publicación en publishToMavenLocal desde su terminal o desde Gradle View en IntelliJ. (Está en el lado derecho de forma predeterminada, pestaña Gradle, expanda su proyecto y debajo de la publicación puede encontrar la tarea).

over 4 years ago · Santiago Trujillo Denunciar

0

Uso de compilaciones compuestas

Su caso de uso es exactamente para lo que están hechas las compilaciones compuestas en Gradle. Los documentos incluso mencionan su caso de uso preciso:

Las compilaciones compuestas le permiten […] combinar compilaciones que generalmente se desarrollan de forma independiente, por ejemplo, al probar una corrección de errores en una biblioteca que usa su aplicación

Una compilación compuesta le permite reemplazar de forma temporal y sencilla una biblioteca de dependencia externa con un proyecto de compilación disponible localmente de esa biblioteca. (Incluso funcionaría con múltiples dependencias diferentes).

Ejemplo completo

Así es como configuraría esto para sus dos proyectos (omitiendo los archivos de Gradle Wrapper y el código fuente de Java por concisión):

 ├── projectA │  ├── build.gradle │  └── settings.gradle └── projectB ├── build.gradle └── settings.gradle

Tenga en cuenta que los dos directorios de proyectos en realidad no tienen que ser hermanos. Solo lo he hecho aquí para mantenerlo simple. En mi compilación de muestra mínima, los dos archivos settings.gradle pueden estar vacíos. Los dos scripts de compilación se ven de la siguiente manera.

projectA/build.gradle

 plugins { id 'java' } dependencies { implementation 'com.example:projectB:1.2.+' } repositories { // where you get the projectB dependency from normally }

projectB/build.gradle

 plugins { id 'java-library' } group = 'com.example' version = '1.2.3'

Ejecución de la muestra

En la línea de comandos

En projectA/ , simplemente ejecute ./gradlew --include-build ../projectB build (o cualquier otra tarea de Gradle que le interese). Asegúrese de usar la ruta correcta al directorio de projectB. La opción --include-build crea automáticamente la compilación compuesta sobre la marcha.

En IntelliJ IDEA

También puede crear una compilación compuesta en IntelliJ. Para hacer eso:

  1. Importe projectA como de costumbre (a través de su archivo build.gradle para asegurarse de que IntelliJ use automáticamente la configuración de Gradle).
  2. En la ventana de la herramienta Gradle, haga clic en el botón + ("Vincular proyecto Gradle") y seleccione el archivo build.gradle del proyecto B.
  3. Haga clic con el botón derecho en projectA en la ventana de la herramienta Gradle y seleccione "Configuración de compilación compuesta". En el cuadro de diálogo de apertura, seleccione proyectoB y haga clic en "Aceptar".
  4. En la ventana de la herramienta Gradle, haga clic en el botón 🗘 ("Recargar todos los proyectos de Gradle").

Eso es todo. Ahora debería poder usar projectA con su dependencia projectB disponible localmente.

over 4 years ago · Santiago Trujillo Denunciar

0

Como tiene la etiqueta "gradle", supongo que la está usando para ambos proyectos. Ejecute "gradlepublishToMavenLocal" en el proyecto B y luego actualice las dependencias del proyecto A.

Solo asegúrese de recordar que hizo esto y elimine el proyecto B de su repositorio local cuando haya terminado.

over 4 years ago · Santiago Trujillo Denunciar

0

  1. Abra el módulo A en IntelliJ IDEA;
  2. Vaya a Archivo-> Estructura del proyecto -> Módulos -> módulo A -> Dependencias (pestaña) -> busque y elimine B.jar (hay un botón "-" para eso);
  3. A continuación, haga clic en el botón "+" y agregue la carpeta que contiene las clases compiladas de su módulo local B.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda