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

Reply via email to