7

I have a batch file which runs a java class using maven which depends on tools.jar (from the JDK).
For example:
mvn -f .\pom.xml -e exec:java -Dfile.encoding="UTF-8" -Dexec.mainClass=MyClass -Dexec.args="%1 %2 %3 %4 %5 %6 %7 %8 %9" -Dexec.classpathScope=runtime
My program uses tools.jar from the JDK and I've added a system dependency in maven which points to it.
Since the exec:java goal doesn't include system dependencies, I want to add the dependency from the command line manually.
Although I expected it to be trivial I could find the way to do it. Any help will be appreciated.
Thanks,
Avner

Grim
  • 1,938
  • 10
  • 56
  • 123
Avner Levy
  • 6,601
  • 9
  • 53
  • 92

1 Answers1

10

From what I read at maven exec plugin it allow you to configure you executable dependencies as plugin dependencies.

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.2.1</version>
        <configuration>
          <includeProjectDependencies>false</includeProjectDependencies>
          <includePluginDependencies>true</includePluginDependencies>
          <executableDependency>
            <groupId>com.example.myproject</groupId>
            <artifactId>mylib</artifactId>
          </executableDependency>
          <mainClass>com.example.Main</mainClass>
        </configuration>
        <dependencies>
          <dependency>
                <groupId>sun.jdk</groupId>
                <artifactId>tools</artifactId>
                <version>1.5.0</version>
                <scope>system</scope>
                <systemPath>${java.home}/../lib/tools.jar</systemPath>
          </dependency>
        </dependencies>
      </plugin>
Tomasz Krzyżak
  • 1,087
  • 8
  • 10
  • 1
    can this be done on command line? It's too bad if I have to maintain a pom file just for adding the dependency. Actually it would be very useful to be able to run a class from a jar directly from command line and have maven take care of pulling dependencies.. – akostadinov Sep 04 '13 at 05:22