我是新手。为了编译我的项目,我点击了 mvn compile。但是我不知道如何从 Maven 内部运行我的项目。例如当我打
mvn exec:java -Dexec.mainClass="main.java.org.dbalancer.StartProgram"
行家投诉:
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 repo。但是有谁知道我怎样才能加快 mvn exec 的速度?如果您只是想检查一些东西,这有点慢..