Maven Shared Components

Nested variables are not filtered

Details

  • Type: Improvement Improvement
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: maven-filtering
  • Labels:
    None
  • Environment:
  • Number of attachments :
    0

Description

I am trying to filter my log4j.properties file in WEB-INF. One line is troublesome. The resulting line should be

log4j.appender.mine.File=${myProject.root}/WEB-INF/logs/mine.log

where myProject is the value of the property project.artifactId.

I try

log4j.appender.mine.File=${${project.artifactId}.root}/WEB-INF/logs/mine.log

but no substitution is done.

After much trial and error, I use

log4j.appender.mine.File=!#!$${log4j.root}/WEB-INF/logs/mine.log

and the following in my pom.xml

<properties>
<log4j.root>{$project.artifactId}.root}</log4j.root>
</properties>
...
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<escapeString>!#!</escapeString>
...
</configuration>
</plugin>
</plugins>
</build>
...

Activity

Hide
Stephane Nicoll added a comment -

this most probably is a maven filtering bug and not a maven war bug. Your description is not very clear: are you saying that you found out a solution to the issue but it's overcomplicated?

Show
Stephane Nicoll added a comment - this most probably is a maven filtering bug and not a maven war bug. Your description is not very clear: are you saying that you found out a solution to the issue but it's overcomplicated?
Hide
Michael Cronin added a comment -

Yes. There is a solution. It is overcomplicated and not intuitive.

Show
Michael Cronin added a comment - Yes. There is a solution. It is overcomplicated and not intuitive.

People

Vote (0)
Watch (2)

Dates

  • Created:
    Updated: