Ok, I only put the properties needed directly by the pom into a settings.xml profile and kept everything else in a properties file used for filtering. That's not so bad.
On Mon, Jan 30, 2012 at 6:58 PM, Shane StClair <[email protected]>wrote: > Ugh...really not a fan of keeping project specific configuration > properties in a global file like settings.xml (and of course not in the > project pom). That's really the Maven way, eh? > > > On Mon, Jan 30, 2012 at 4:51 PM, Stephen Connolly < > [email protected]> wrote: > >> On 30 January 2012 20:09, Shane StClair <[email protected]> wrote: >> > Hello all, >> > >> > I have a project with a parent pom and child modules. Configuration >> > properties are kept in a build.properties file and an overriding >> > custom.build.properties. The properties-maven-plugin is defined in the >> >> You are off the reservation there already. >> >> That plugin is against the Maven design, at least as far as property >> inheritance is concerned, only bugs in Maven 2 may have let you away >> with that for now. >> >> > parent pom to load these properties, and the plugin is inherited by the >> > child poms. Property substitution based on these files is used directly >> in >> > the parent and child poms and also for resource filtering. >> > >> > One child pom has a deploy profile using the cargo-maven2-plugin. In >> Maven >> > 2, property substitution works everywhere using this methodology. In >> Maven >> > 3, it works everywhere except inside of the child pom's deploy profile. >> In >> > this case the substitution tokens are never replaced. >> > >> > Parent: >> > <project> >> > ... >> > <modules> >> > <module>child-module</module> >> > </modules> >> > >> > <properties> >> > <main.basedir>${project.basedir}</main.basedir> >> > </properties> >> > ... >> > <build> >> > <plugins> >> > <plugin> >> > <groupId>org.codehaus.mojo</groupId> >> > <artifactId>properties-maven-plugin</artifactId> >> > <version>1.0-alpha-2</version> >> > <inherited>true</inherited> >> > <executions> >> > <execution> >> > <phase>initialize</phase> >> > <goals> >> > <goal>read-project-properties</goal> >> > </goals> >> > <configuration> >> > <files> >> > >> > <file>${main.basedir}/build.properties</file> >> > >> > <file>${main.basedir}/custom.build.properties</file> >> > </files> >> > </configuration> >> > </execution> >> > </executions> >> > </plugin> >> > ... >> > </plugins> >> > </build> >> > ... >> > </project> >> > >> > Child: >> > <project> >> > <parent> >> > <groupId>the.group</groupId> >> > <artifactId>the-parent</artifactId> >> > <version>0.1-SNAPSHOT</version> >> > </parent> >> > <modelVersion>4.0.0</modelVersion> >> > <artifactId>child-module</artifactId> >> > <packaging>war</packaging> >> > >> > <properties> >> > <main.basedir>${project.parent.basedir}</main.basedir> >> > </properties> >> > >> > <build> >> > <finalName>${final.name}</finalName> >> > <plugins> >> > <plugin> >> > <groupId>org.apache.maven.plugins</groupId> >> > <artifactId>maven-war-plugin</artifactId> >> > <version>2.1.1</version> >> > <configuration> >> > >> > <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors> >> > <webResources> >> > <resource> >> > <directory>src/main/webapp</directory> >> > <filtering>true</filtering> >> > </resource> >> > <resource> >> > >> <directory>src/main/webapp/WEB-INF</directory> >> > <filtering>true</filtering> >> > <targetPath>WEB-INF</targetPath> >> > </resource> >> > </webResources> >> > </configuration> >> > </plugin> >> > </plugins> >> > </build> >> > >> > <profiles> >> > <profile> >> > <id>deploy</id> >> > <build> >> > <finalName>${final.name}</finalName> >> > <plugins> >> > <plugin> >> > <groupId>org.codehaus.cargo</groupId> >> > <artifactId>cargo-maven2-plugin</artifactId> >> > <executions> >> > <execution> >> > <id>deploy-exec</id> >> > <phase>install</phase> >> > <goals> >> > <goal>deployer-undeploy</goal> >> > <goal>deployer-deploy</goal> >> > </goals> >> > </execution> >> > </executions> >> > >> > <configuration> >> > <container> >> > >> > <containerId>${deploy.tomcat.version}</containerId> >> > <type>remote</type> >> > </container> >> > >> > <configuration> >> > <type>runtime</type> >> > <properties> >> > <cargo.tomcat.manager.url> >> > ${deploy.tomcat.manager.url} >> > </cargo.tomcat.manager.url> >> > <cargo.remote.username> >> > ${deploy.tomcat.manager.username} >> > </cargo.remote.username> >> > <cargo.remote.password> >> > ${deploy.tomcat.manager.password} >> > </cargo.remote.password> >> > </properties> >> > </configuration> >> > >> > <!-- Deployer and Deployables configuration >> --> >> > <deployer> >> > <type>remote</type> >> > <deployables> >> > <deployable> >> > >> > <groupId>${project.groupId}</groupId> >> > >> > <artifactId>${project.artifactId}</artifactId> >> > <type>war</type> >> > </deployable> >> > </deployables> >> > </deployer> >> > </configuration> >> > </plugin> >> > </plugins> >> > </build> >> > </profile> >> > </profiles> >> > </project> >> > >> > In Maven 2, final.name and all deployment configuration properties are >> > substituted according to the contents of the properties files. In Maven >> 3, >> > they aren't substituted and deployment fails. Is this expected? >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Shane StClair > Software Engineer > Axiom Consulting & Design > http://www.axiomalaska.com > -- Shane StClair Software Engineer Axiom Consulting & Design http://www.axiomalaska.com
