我是maven的新手。为了编译我的项目,我点击了mvn编译。但是我无法弄清楚如何从maven内部运行我的项目。例如,当我点击
mvn exec:java -Dexec.mainClass =“main.java.org.dbalancer.StartProgram”
maven投诉:
java.lang.NoClassDefFoundError: com/sanityinc/jargs/CmdLineParser$OptionException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getMethod0(Class.java:2685)
at java.lang.Class.getMethod(Class.java:1620)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:285)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: com.sanityinc.jargs.CmdLineParser$OptionException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
这意味着jargs库不包含在类路径中。但是在我的项目中,目标文件夹下没有任何库,这意味着我使用的任何库我应该自己下载并包含在类路径中(或使用.m2 /文件夹)。 例如,当我在target / classes文件夹下时,我已经下载了所有必需的库,这个命令有效: java -cp。:../../ lib / jargs-2.0-SNAPSHOT.jar:../../../ dom4j-2.0.0-ALPHA-2.jar:../ ../ .. /log4j-1.2.17.jar main.java.org.dbalancer.StartProgram
然而,这不是一点点冗长吗?我怎么能从maven里面运行它?我可以使用java命令运行它,但不能自己下载必要的库吗?
更新:好的问题是我以这种方式包含的库:
<dependency>
<groupId>jargs_local</groupId>
<artifactId>jargs</artifactId>
<version>2.0-SNAPSHOT</version>
<scope>system</scope>
<systemPath>${basedir}/lib/jargs-2.0-SNAPSHOT.jar</systemPath>
</dependency>
现在jargs转移到官方maven回购。 但是有谁知道我怎样才能加速mvn exec?如果你只是想检查一下它会有点慢..
答案 0 :(得分:2)
maven-exec插件应该为您设置类路径。您是否可能在您的pom.xml
中将jarg视为依赖(我们可以看到它以及完整的mvn转储吗?)
干杯,
答案 1 :(得分:1)
构建一个自给自足的可运行jar的一种简单方法是使用maven程序集插件构建一个带有依赖关系的jar。
http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html
答案 2 :(得分:1)
你应该将它们依赖于pom.xml 例如:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.0</version>
</dependency>
或
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src\main\webapp\WEB-INF\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
或
<dependency>
<groupId>org.swinglabs</groupId>
<artifactId>swingx</artifactId>
<version>0.9.2</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/swingx-0.9.3.jar</systemPath>
</dependency>