[
https://jira.codehaus.org/browse/MRESOURCES-31?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=332282#comment-332282
]
Emeric MARTINEAU commented on MRESOURCES-31:
--------------------------------------------
Hi,
you can't use :
{code}
${project.dependencies[0].artifactId}
${project.dependencies["org.mvel:mvel"].version}
{code}
Why ?
Two things.
You must make difference between, filtering (in file) and replace in pom.
In pom file, $\{project.dependencies[0].artifactId} work (exemple below)
because, is use class called
org.apache.maven.plugin.PluginParameterExpressionEvaluator that use
org.codehaus.plexus.util.introspection.ReflectionValueExtractor that support
index properties
{code:xml}
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<configuration>
<tasks>
<echo>${project.dependencies[0].artifactId}</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
{code}
when your are in filtering, is use class
org.codehaus.plexus.interpolation.PrefixedObjectValueSource that use
org.codehaus.plexus.interpolation.ObjectBasedValueSource that
org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor that not
support index properties.
You can see that exemple :
{code}
project.dependencies=${project.dependencies}
give :
project.dependencies=[Dependency {groupId=org.apache.maven,
artifactId=maven-plugin-api, version=2.0.6, type=jar}, Dependency
{groupId=org.apache.maven, artifactId=maven-model, version=3.0.5, type=jar}]
project.dependencies[0].artifactId=${project.dependencies[0].artifactId}
give :
project.dependencies[0].artifactId=${project.dependencies[0].artifactId}
{code}
to change this way, org.apache.maven.shared.filtering.DefaultMavenFileFilter
(method getReader) must be change.
I don't know if easy to change that (what are side effect ?).
Maybe someone of maven team may provide his point of view ?
> Dependency resolution for resource filtering
> --------------------------------------------
>
> Key: MRESOURCES-31
> URL: https://jira.codehaus.org/browse/MRESOURCES-31
> Project: Maven Resources Plugin
> Issue Type: Wish
> Affects Versions: 2.2
> Reporter: Daniel Holmen
> Priority: Minor
>
> I've been trying to use the project.compileClasspathElements property in a
> filtered resource, but discovered that Resources plugin isn't set up to
> require dependency resolution. The result of this is that i cannot use any of
> the classpath properties in my filtered resources.
> The solution is quite simple, just add a @requiresDependencyResolution
> annotation to ResourcesMojo. I have no idea if this causes any bad
> side-effects - but it seemed to work properly when I tested it locally.
--
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