Just to give further details, here's what I've worked out as a (mostly)
general solution to this issue:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<tasks>
<property name="rsrc.dir"
value="${project.resources[0].directory}"/>
<property name="excludes"
value="${project.resources[0].excludes}"/>
<property name="rsrc.list.out"
value="${project.build.directory}/classes/${project.groupId}:${project.artifactId}:resourcelist.txt"/>
<fileset id="resources.list" dir="${rsrc.dir}"
excludes="${excludes}"/>
<pathconvert pathsep="${line.separator}"
property="resources.str" refid="resources.list">
<filtermapper>
<replacestring from="${rsrc.dir}" to=""/>
</filtermapper>
</pathconvert>
<echo file="${rsrc.list.out}" append="false"
message="${resources.str}"/>
<echo>Including resources found in ${rsrc.dir} in list
written to ${rsrc.list.out}</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
The failings here being (a) it won't include resources in supplemental
resource directories in the outputted list (b) it writes files to
target/classes instead of a proper generated-sources directory
(<http://jira.codehaus.org/browse/MANTRUN-54> would make that possible, I
believe), and (c) it's ant ;-)
Better options welcome.
- Chas
cemerick wrote:
>
> I have a project that has a number of resources under src/main/resources.
> The associated codebase needs to know what resources are available in
> order to load them at runtime (new resources are added all the time, so
> the list cannot be static). I've got an ant target (from an older
> project) that scans the resources dir, and emits a list of the files under
> that directory as a new file. The code can then always load that directly
> listing at runtime, and do what it needs to.
>
> This works fine, but I'm wondering if there's a native maven solution to
> the problem. I see noticed a ${project.resources} property mentioned
> elsewhere; I figured I'd drop that into the jar's manifest, and load it
> back at runtime from there, but project.resources appears to be an
> ArrayList, so can't be added as a manifest entry's value (or, at least,
> not in a way obvious to me).
>
> Thoughts?
>
> Thanks,
>
> - Chas
>
--
View this message in context:
http://old.nabble.com/Generate-%2B-include-list-of-resources-included-in-jar-tp26718010p26729085.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]