执行maven生成的可执行jar时,我遇到了(一个奇怪的)问题:
user@host$ java -server -jar MyJar.jar
Error
(仅此而已!)
你知道这个错误之王来自哪里吗?
在我的pom.xml中,我将所有依赖项复制到lib文件夹中:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${artifactId}-${version}/${artifactId}-${version}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
然后我生成一个.jar,包括类路径(+一个指向lib文件夹的前缀):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/${artifactId}-${version}/${artifactId}-${version}/bin</outputDirectory>
<finalName>MyJar</finalName>
<archive>
<manifest>
<mainClass>
com.company.package.Main
</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>../lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
生成的MANIFEST.MF似乎包含正确的类路径。
非常感谢你的帮助!
答案 0 :(得分:1)
错误并没有说太多,这确实很奇怪。您使用的是Sun JDK吗?
无论如何,我真的不知道依赖关系是如何通过你的设置被捆绑到最终的JAR中的,我认为它不包含所需的一切(当然我可能是错的)。
实际上,我甚至不会尝试修复您当前的设置。要创建可执行jar,您应该更喜欢程序集插件。例如,请参阅this recent answer。请使用建议的配置修改pom.xml
(这将需要30秒),然后重试。然后,请使用新的结果/错误pom.xml
和清单
答案 1 :(得分:0)
我创建了一个新的Maven存储库,重建了所有maven依赖项,并以某种方式解决了问题。
我不知道这是怎么发生的,因为我只能在没有罐子的情况下运行......
但是,谢谢你的帮助