¿Hay alguna manera de compilar múltiples directorios fuente de Java en un solo proyecto Maven?
194
Puede agregar un nuevo directorio de origen con build-helper:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
plugin
elemento está dentro/project/build/plugins
y NO dentro/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
a partir del mercado Eclipse para eliminar el error en pom.xml'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
que necesita agregar dentro de<plugin>
la etiqueta<version>1.12</version>
Ingenuamente lo hago de esta manera:
fuente
Esto funciono para mi
fuente
sourceDirectory
, y posiblemente adicionalsources
, como las raíces de los archivos fuente. En su solución,maven-compiler-plugin
es el único complemento que conoce estas raíces reales.para que funcione en intelliJ, también puede agregar
a maven-compiler-plugin
fuente
Esto también funciona con maven definiendo la etiqueta de recursos. Puedes nombrar los nombres de tus carpetas src como quieras.
fuente
Resources are not (usually) code. They are not compiled
Esto funcionó con maven 3.5.4 y ahora Intellij Idea ve este código como fuente:
fuente
Usé el plugin build-helper-maven-del post - y actualicé src / main / generado. Y mvn clean compile funciona en mi ../common/src/main/java, o en ../common, así que mantuve este último. Entonces sí, confirmando que el nivel de compilación de IntelliJ IDEA (ver 10.5.2) falló como lo mencionó David Phillips. El problema era que IDEA no agregó otra raíz fuente al proyecto. Agregarlo manualmente resolvió el problema. No es bueno, ya que editar cualquier cosa en el proyecto debe provenir de maven y no de la edición directa de las opciones de proyecto de IDEA. Sin embargo, podré vivir con él hasta que admitan build-helper-maven-plugin directamente, de modo que agregue automáticamente las fuentes.
Luego necesité otra solución para que esto funcione. Como cada vez que IDEA reimportó la configuración de Maven después de un cambio de pom, la fuente recién agregada se mantuvo en el módulo, pero perdió sus selecciones de Carpetas de origen y fue inútil. Entonces, para IDEA, debe configurar estos una vez:
Ahora, mantener esas carpetas importadas tampoco es la mejor práctica del mundo, ..., pero intentarlo.
fuente
Si bien la respuesta de evokk es básicamente correcta, faltan clases de prueba . Debe agregar clases de prueba con el objetivo add-test-source :
fuente
Esto se puede hacer en dos pasos:
${build.directory}
Si trabaja con Jetty iniciado (
jetty:run
), la recompilación de cualquier clase en cualquier módulo (con Maven, IDEA o Eclipse) conducirá al reinicio de Jetty. El mismo comportamiento que obtendrá para los recursos modificados.fuente
En la configuración, puede usar
<compileSourceRoots>
.Estas son todas las configuraciones disponibles para la versión 3.8.1 del complemento del compilador. Las diferentes versiones tienen diferentes configuraciones que puede encontrar ejecutando su código
-X
después del comando general mvn. Me gustay busque con ID u objetivo o nombre del complemento Esto puede ayudar con otros complementos también. Eclipse, intelliJ puede no mostrar todas las configuraciones como sugerencias.
fuente