Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

426
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda