You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Emeric MARTINEAU (JIRA)" <ji...@codehaus.org> on 2013/07/10 17:49:05 UTC
[jira] (MRESOURCES-118) ${project.dependencies[0].artifactId} is
not expanded by resource filtering
[ https://jira.codehaus.org/browse/MRESOURCES-118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=328349#comment-328349 ]
Emeric MARTINEAU commented on MRESOURCES-118:
---------------------------------------------
Hi,
I trie this,
{code:xml}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>fr.emeric</groupId>
<artifactId>titi</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Kiko lolo</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.6</version>
</dependency>
</dependencies>
<properties>
<myVar>${project.dependencies[0].artifactId}</myVar>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<echo>${project.compileClasspathElements}</echo>
<echo>${project.dependencies[0].artifactId}</echo>
<echo>${myVar}</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
{code:xml}
and I have the result :
[INFO] Executing tasks
[echo] [D:\DONNEES\emeric\workspace_eclipse\generique-projet-js\target\classes, D:\DONNEES\emeric\workspace_eclipse\.m2\repository\org\apache\maven\maven-plugin-api\2.0.6\maven-plugin-api-2.0.6.jar]
[echo] maven-plugin-api
[echo] maven-plugin-api
[INFO] Executed tasks
In src/main/resources I have a file test.properties :
{code:txt}
project.compileClasspathElements=${project.compileClasspathElements}
project.dependencies[0].artifactId=${project.dependencies[0].artifactId}
myVar=${myVar}
{code:txt}
I have result :
{code:txt}
project.compileClasspathElements=[D:\\DONNEES\\emeric\\workspace_eclipse\\generique-projet-js\\target\\classes]
project.dependencies[0].artifactId=${project.dependencies[0].artifactId}
myVar=${project.dependencies[0].artifactId}
{code:txt}
I think project.dependencies anly avaible in pom file.
If you see http://jira.codehaus.org/browse/PLXUTILS-37
I understand this properties only scope on pom not a all access properties.
Can you explain your use case ?
Why want this properties to understand this issue and https://jira.codehaus.org/browse/MRESOURCES-31
PS : I think MRESOURCES-31 Is duplicate of this issue.
> ${project.dependencies[0].artifactId} is not expanded by resource filtering
> ---------------------------------------------------------------------------
>
> Key: MRESOURCES-118
> URL: https://jira.codehaus.org/browse/MRESOURCES-118
> Project: Maven 2.x Resources Plugin
> Issue Type: Bug
> Components: interpolation
> Affects Versions: 2.3, 2.4, 2.4.1
> Environment: Maven 2.2.1, Ubuntu 9.10, Java 6u16
> Reporter: Pascal Thivent
> Priority: Minor
> Attachments: maven-resources-filtering-testcase.tar.bz2
>
>
> When filtering resources, ${project.dependencies[0].artifactId} is not expanded (remains unchanged in the output file).
> I've tried to define a property in my pom to workaround this issue:
> <properties>
> <myartifact>${project.dependencies[0].artifactId}</myartifact>
> </properties>
> But, still, filtering the following file:
> {code:xml}
> <somenode>
> <fileName>${project.dependencies[0].artifactId}</fileName>
> <fileName>${myartifact}</fileName>
> </somenode>
> {code}
> Produces the following unexpected result:
> {code:xml}
> <somenode>
> <fileName>${project.dependencies[0].artifactId}</fileName>
> <fileName>${project.dependencies[0].artifactId}</fileName>
> </somenode>
> {code}
> The only working workaround I've found is to use the antrun plugin:
> {code:xml}
> <plugin>
> <artifactId>maven-antrun-plugin</artifactId>
> <executions>
> <execution>
> <phase>process-resources</phase>
> <configuration>
> <tasks>
> <echo>${project.dependencies[0].artifactId}</echo>
> <echo>${artifactId}</echo>
> <replace file="${project.build.outputDirectory}/my.xml" token="@@@" value="${project.dependencies[0].artifactId}"/>
> </tasks>
> </configuration>
> <goals>
> <goal>run</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> {code}
> I didn't test all cases but this problem may affect all "indexed" properties (as defined in PLXUTILS-37).
> I'm attaching a sample project demonstrating this problem.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira