¿Cómo agregar un directorio de origen adicional para que maven lo compile e incluya en el contenedor de compilación?
95
Además de src / main / java, estoy agregando un directorio src / bootstrap que quiero incluir en mi proceso de compilación, en otras palabras, quiero que maven compile e incluya las fuentes allí en mi compilación. ¿¡Cómo!?
Pregunta simple: ¿Por qué no mover el código fuente a src / main / java? O cree un proyecto / módulo de maven separado que contenga el código y defínalo como dependencia.
Khmarbaise
7
En mi caso, necesito agregar una carpeta de fuentes generadas, que prefiero que resida dentro del objetivo.
djjeck
Alternativamente, uno podría querer colocar pruebas de integración en directorios que no sean los src/{main,test}/que se
¿Eclipse realmente reconoce una carpeta como una de las buildpathde alguien? porque no es así para mí. FWIW, utilizo m2epara importar el proyecto.
mystarrocks
Gran respuesta, solo para aclarar, debe reemplazar su maven-compiler-plugin con las líneas de arriba ...
Colin
También funciona en IntelliJ.
Alexander Klimetschek
1
Eclipse me pidió que instalara un complemento para m2e, el conector auxiliar de compilación. Lo hice y el error del ciclo de vida desapareció.
Alexis Dufrenoy
1
Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source (execution: add-source, phase: generate-sources)recibiendo este error
Katie
35
NOTA: Esta solución simplemente moverá los archivos fuente de Java al directorio target / classes y no compilará las fuentes.
Sin embargo, parece que necesita eliminar la ** exclusión de la carpeta agregada en la ruta de compilación de Eclipse :(
Dormouse
@Dormouse, ¿puedes explicarme por favor?
Saikat
1
No funciona con IntelliJ, se verá <resource>como carpeta "Recurso" pero no como carpeta "Fuente", por ejemplo, no compilará archivos fuente Java dentro de ellos.
Alexander Klimetschek
4
Esta solución simplemente moverá los archivos fuente de Java al directorio target / classes y no compilará las fuentes
Esto anula el directorio src / main / java predeterminado. Si desea varios directorios, también debe especificar el predeterminado.
Natix
2
La pregunta es cómo agregar varios directorios de origen y está proponiendo un método para agregar solo un directorio de origen, que es lo opuesto a lo que se pregunta.
João Matos
1
Con las versiones recientes de Maven (3) y la versión reciente del complemento del compilador de Maven (3.7.0), noto que build-helper-maven-pluginno es necesario agregar una carpeta de origen con el si la carpeta que contiene el código fuente para agregar en la compilación se encuentra en el targetcarpeta o una subcarpeta de la misma.
Parece que el complemento del compilador maven compila cualquier código fuente de Java ubicado dentro de esta carpeta, sea cual sea el directorio que lo contiene.
Por ejemplo tener algunos (generado o no) el código fuente en target/a, target/generated-source/foose compilan y se añaden en el OutputDirectory: target/classes.
¿Por qué la gente vota en contra? Básicamente, la misma respuesta que la de saiky0 (que tiene votos positivos) pero antes.
Viernes
15
@Friso porque no es correcto. Agregar un directorio de recursos agregará recursos (archivos copiados target/classes, pero no compilados). Esta pregunta se refiere a la adición de un directorio de origen, que contiene los archivos que se compilan en target/classes, no se han copiado.
src/{main,test}/
que seRespuestas:
Puede utilizar el complemento Build Helper , por ejemplo:
fuente
buildpath
de alguien? porque no es así para mí. FWIW, utilizom2e
para importar el proyecto.Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:build-helper-maven-plugin:1.7:add-source (execution: add-source, phase: generate-sources)
recibiendo este errorActualizar el
pom.xml
como -fuente
<resource>
como carpeta "Recurso" pero no como carpeta "Fuente", por ejemplo, no compilará archivos fuente Java dentro de ellos.http://maven.apache.org/guides/mini/guide-using-one-source-directory.html
ver también
Maven compila con múltiples directorios src
fuente
Con las versiones recientes de Maven (3) y la versión reciente del complemento del compilador de Maven (3.7.0), noto que
build-helper-maven-plugin
no es necesario agregar una carpeta de origen con el si la carpeta que contiene el código fuente para agregar en la compilación se encuentra en eltarget
carpeta o una subcarpeta de la misma.Parece que el complemento del compilador maven compila cualquier código fuente de Java ubicado dentro de esta carpeta, sea cual sea el directorio que lo contiene.
Por ejemplo tener algunos (generado o no) el código fuente en
target/a
,target/generated-source/foo
se compilan y se añaden en el OutputDirectory:target/classes
.fuente
Puede agregar los directorios para su proceso de construcción como:
Src / main / java es la ruta predeterminada que no es necesario mencionar en pom.xml
fuente
target/classes
, pero no compilados). Esta pregunta se refiere a la adición de un directorio de origen, que contiene los archivos que se compilan entarget/classes
, no se han copiado.