3

One of the components is looking for the persistence.xml using the java.class.path system property. It is desired to keep this file separately from jars in the /conf folder.

When running the app with exec:exec, classpath is formed from the path to the main jar plus path to every dependency. I can't seem to figure out how to add the /conf entry to the classpath.

My command line looks like this:

mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath com.testjar.App"

I tried "arguments" parameter but the execution fails if I try to append anything to %classpath. I also tried to add a Class-Path entry to the manifest by specifying

<manifestEntries>
  <Class-Path>/conf</Class-Path>
</manifestEntries>

in the configuration for maven-jar-plugin, but the entry in the manifest has no effect on the value of java.class.path property.

Sergey Aldoukhov
  • 22,316
  • 18
  • 72
  • 99

1 Answers1

4

You may use the element 'resources' in the 'build' section of your POM file. For example

<build>
 <resources>
  <resource>
   <directory>src/main/resources/config</directory>
   <includes>
    <include>persistence.xml</include>
   </includes>
   <targetPath>/</targetPath>
  </resource>
 </resources>
 ...
</build>

This will copy the persistence.xml into the build output directory, i.e. it will place the persistence.xml on the classpath.

Boris Pavlović
  • 63,078
  • 28
  • 122
  • 148