Well this was a PBKAC - I did not have a profile activated that defined the
properties to be substituted. Shows what happens when you've been away from
a project.
So here are some other things I learned along the way:
* the property interpolation is done in the process-resources phase, so the
command is better stated
mvn -DmyPropertyActivatedProfile clean compile process-resources
war:exploded
and then you can tack on your favorite deployer at the end, such as
tomcat-maven-plugin, jboss-maven-plugin, or cargo-maven2-plugin. Check out
the well-documented plugin pages.
* using mvn -X will enable good debug so you can see what's happening
wkbutler wrote:
>
> Hello -
> I believe this should be an easy thing but somehow is not working, using
> Maven 2.1.0.
>
> This is one of our resource files --
> src/main/resources/applicationContext-resource.xml:
>
> <bean id="e3DataSource"
> class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
> <property name="driverClassName"
> value="${e3.jdbc.driverClassName}"/>
> <property name="url" value="${e3.jdbc.url}"/>
> <property name="username" value="${e3.jdbc.username}"/>
> <property name="password" value="${e3.jdbc.password}"/>
> <property name="maxActive" value="100"/>
> <property name="maxWait" value="1000"/>
> <property name="poolPreparedStatements" value="true"/>
> <property name="defaultAutoCommit" value="true"/>
> </bean>
>
>
> When I execute
> mvn clean compile war:exploded
>
> I am expecting the ${property.values} to be interpolated with properties
> defined in the pom.xml.
>
> I think that the only thing required to make this work is to include this
> section in my POM:
>
> <build>
> <resources>
> <resource>
> <directory>src/main/resources</directory>
> <filtering>true</filtering>
> </resource>
> </resources>
> </build>
>
> as per this documentation
>
> http://maven.apache.org/guides/getting-started/index.html#How%20do%20I%20filter%20resource%20files
> .
>
> This is not working, however. The generated WAR still contains
> un-interpolated values like ${e3.jdbc.url} in that file listed above, and
> the rest of our src/main/resources files.
>
> What is confusing to me is that
> #1 - the maven-jetty-plugin manages to do this without any special
> configuration - jetty runs fine
>
> #2 - the Maven Getting Started Guide referenced above suggests prefixing
> property names with "pom", such as ${pom.e3.jdbc.url} - so I tried that of
> course, with no luck.
>
> Am I missing something? Should this be working as-is?
>
> This is our maven-war-plugin configuration FWIW:
>
> <plugin>
> <artifactId>maven-war-plugin</artifactId>
> <version>2.0.2</version>
> <configuration>
>
> <filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
> </configuration>
> </plugin>
>
> and I did try the <filters> section, but that seems to be for using
> external/supplemental configuration files. I did not try using pom.xml as
> a filter, but that seems redundant.
>
> Help! Thanks -
> Kent
>
>
>
>
>
--
View this message in context:
http://www.nabble.com/Property-interpolation-in-war-plugin-tp23965676p23983461.html
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]