teoria referente pom central maven

referente - Cambiar el directorio de origen en el perfil maven



pom maven (2)

Consulte el modelo de Maven , no está permitido definir un sourceDirectory dentro de un perfil. Lo único que puede hacer es especificar el directorio de origen dentro de la configuración del complemento, suponiendo que esté disponible.

Quiero utilizar un directorio de origen diferente para un perfil de experto específico, sin embargo, cuando intento especificarlo en la definición de perfil, aparece este error:

Unrecognised tag: ''sourceDirectory'' (position: START_TAG seen ...<build>/r/n/t/t/t/t<sourceDirectory>... )

La definición en el pom es la siguiente:

<profile> <id>development</id> <build> <sourceDirectory>${project.build.directory}/new-src</sourceDirectory> . . . </build> </profile>

Lo que intento hacer es procesar los archivos fuente antes de su compilación si y solo si este perfil está activo. Mi proceso cambiará los archivos fuente sobre la marcha, arrojará las fuentes modificadas en el directorio "new-src" y compilará ese directorio como si fuera el habitual "src / main / java". Todo lo demás en el ciclo de vida debería comportarse normalmente. Si este enfoque es defectuoso, ¿podría alguien apuntarme en la dirección correcta?


De acuerdo con la documentation , puede cambiar solo unos pocos parámetros <build> en el perfil y <sourceDirectory> no es uno de ellos.

Configuraba el <build> principal para tomar las fuentes de la ruta definida por alguna propiedad (por ejemplo, src.dir ), establecía esta propiedad en src/main/java y la anulaba en el perfil personalizado:

<project> ... <properties> <src.dir>src/main/java</src.dir> </properties> <build> <sourceDirectory>${src.dir}</sourceDirectory> ... </build> <profiles> <profile> <id>development</id> <properties> <src.dir>${project.build.directory}/new-src</src.dir> </properties> </profile> </profiles> </project>