2011-11-16 19 views
5

¿Hay alguna manera de definir mis perfiles de maven fuera del archivo POM pero no en .m2/settings.xml?
quiero definir en un archivo XML independiente dentro la aplicación (manera de trabajar de manera eficiente con Maven 2 y 3) porque estoy utilizando Maven 2 y la intención de cambiar a 3 pronto.Definir perfiles maven fuera de POM

Respuesta

1

Hasta Maven 2.2.1 podría definir sus perfiles en el archivo profiles.xml como un archivo separado, pero con Maven 3 esta oportunidad se ha eliminado. La pregunta es ¿por qué necesita un archivo separado para los perfiles?

+4

porque tengo muchos perfiles, y cada perfil contiene muchas propiedades, y el archivo pom está obteniendo tan grande. –

+0

¿Qué hay de usar un superpom que contenga perfiles, suponiendo que se apliquen a diferentes tipos de proyectos? Sus poms del proyecto pueden usar ese pom padre sin tener que volver a definir todo este comportamiento común. – RonU

+0

url para tal enfoque por favor en una respuesta separada sería preferible? –

1

Es posible que desee ir a través de this maven documentation en los perfiles de construcción, que describe los tipos de perfiles y cómo se pueden utilizar.

Según lo veo, los perfiles no pueden definirse fuera de pom.xml o settings.xml, si desea utilizar maven 3.

0

Hace poco estuve migrando una aplicación a maven3 desde maven2. Con maven 3 no hay posibilidad de tener perfiles externos. Pero lo que se puede hacer es tener archivos de propiedad externos. Esto se puede lograr mediante maven-properties-plugin

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>properties-maven-plugin</artifactId> 
<version>1.0-alpha-2</version> 
<executions> 
    <!-- Associate the read-project-properties goal with the initialize phase, 
    to read the properties file. --> 
    <execution> 
    <phase>initialize</phase> 
    <goals> 
    <goal>read-project-properties</goal> 
    </goals> 
    <configuration> 
    <files> 
    <file>../com.tak/build.properties</file> 
    </files> 
    </configuration> 
    </execution> 
</executions> 
</plugin> 

Así que aquí me han explicado cómo hacerlo http://programtalk.com/java/migrate-from-maven2x-to-maven3x/

0
<profiles> 
    <profile> 
     <id>dev</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <properties> 
      <build.profile.id>dev</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>prod</id> 
     <properties> 
      <build.profile.id>prod</build.profile.id> 
     </properties> 
    </profile> 
    <profile> 
     <id>test</id> 
     <properties> 
      <build.profile.id>test</build.profile.id> 
     </properties> 
    </profile> 
</profiles> 

y añadir un filtro

<filters> 
    <filter>src/test/resources/${build.profile.id}/config.properties</filter> 
</filters> 

y añadir a cualquier directorio (dev, prod, test)

Cuestiones relacionadas