How to make Maven copy resource file into WEB-INF/lib directory?
Pregunta
I'm using NewRelic for monitoring. I want Maven to package both newrelic.jar and newrelic.yaml files into my WEB-INF/lib
inside the war file. With the newrelic.jar there is no problem since it's a simple dependency, but newrelic.yaml is a resource file. It resides in resources directory. I want Maven (war plugin) to copy it to WEB-INF/lib
when packaging the war.
Thanks.
Alex
Solución
While I agree with @matt b that this is odd, here's what you can do:
Try changing the configuration of the maven war plugin to include a webResource:
<configuration>
<webResources>
<resource>
<directory>pathtoyaml</directory>
<includes>
<include>**/*.yaml</include>
<includes>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
The directory is relative to the pom.xml. See the plugin's documentation for more info.
Otros consejos
You can also specify most configuration for the New Relic agent including the location of the config file via flags passed to the java command. In this case, it's something like:
-Dnewrelic.config.file=/etc/newrelic.yml
(ok, it's exactly like that, but you need to specify whatever path you need if it's not that.)
- You should try adding .yaml file to newrelic.jar's resources, later you can access it via classpath.
- Or try changing/overriding build.xml build target by adding something like < copy file=".yaml" todir="WEB-INF/lib" />
Try googling for more info on changing build.xml.