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

Reply via email to