Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

425
Views
Maven: cómo incluir archivos java individuales como fuentes/dependencias

Creé un proyecto de varios módulos en maven que es el siguiente:

 root/pom.xml |________client/pom.xml |________/src/main/java |________/src/main/resources |________common/pom.xml |________/src/main/java |________tools/pom.xml |________/src/main/java |________server/pom.xml |________/src/main/java |________/src/main/resources

Me gustaría compilar el código del módulo "cliente" que depende de TODAS las clases de Java en el módulo "común" pero en ALGUNAS clases de Java en el módulo de "herramientas" . Usando el complemento build-helper-maven-plugin como se muestra a continuación, pude agregar todos los archivos fuente de Java en common/ path, pero necesito una forma de definir archivos java individuales como fuentes que están en tools/ .

 <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>../common/src/main/java</source> <!-- Adding single java files as below does not work --> <source>../tools/log/Log.java</source> <source>../tools/socket/SocketClient.java</source> <!-----------------------------------------------------> </sources> </configuration> </execution> </executions>
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Debe incluir el módulo "común" y "herramientas" como dependencia en "cliente". Luego, puede ejecutar la compilación en la raíz del proyecto: mvn clean install: compilará todos los módulos.

over 4 years ago · Santiago Trujillo Report

0

No intente usar partes de un módulo como dependencia. Maven no admite esto y da como resultado construcciones frágiles y difíciles de mantener.

Si solo necesita partes de tools , entonces esta es una señal clara de que las tools son demasiado grandes y necesita dividirlas en dos módulos.

over 4 years ago · Santiago Trujillo Report

0

Ok, según los comentarios recibidos, parece que la solución ideal es dividir los módulos en submódulos y usarlos como dependencias. Sin embargo, dado que actualmente es una tarea que consume mucho tiempo, estoy publicando una solución rápida y sucia sobre cómo puede incluir uno o más archivos Java en su compilación copiando los archivos en un nuevo directorio de origen, src/main/external , y luego agregue este directorio como parte de sus fuentes.

 <build> <plugins> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>copy-source-java-files</id> <phase>generate-resources</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>src/main/external</outputDirectory> <overwrite>true</overwrite> <resources> <resource> <!-- External source directory --> <directory>../tools/src/main/java/</directory> <includes> <!-- Files to be copied along with their directory paths --> <include>tools/log/Log.java</include> <include>tools/socket/SocketClient.java</include> <include>tools/client/reader/**</include> </includes> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>src/main/java</source> <source>src/main/resources</source> <source>../common/src/main/java</source> <!-- Here we add the source with the files copied --> <source>src/main/external</source> </sources> </configuration> </execution> </executions> </plugin> </plugins> </build>

La salida después de la compilación sería la siguiente:

 root/pom.xml |________client/pom.xml |________/src/main/java |________/src/main/resources |________/src/main/external <----- This contains all external java files.
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!