【发布时间】:2013-11-29 15:56:32
【问题描述】:
以下是我的java应用的目录结构:
application.jar
dependency-jars
a.jar
b.jar
c.jar
当我使用以下命令时,应用程序执行良好:java -cp "application.jar;dependency-jars/*" com.my.Application。除了应用程序依赖项之外,“dependency-jars”文件夹还将包含由其使用者丢弃的 jars。我想让它成为一个可执行的 jar,以便它的消费者可以轻松调用它。为了创建可执行 jar,我正在使用 maven jar 插件。我想模拟上面的命令行。我使用了以下 maven jar 插件配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.my.Application</mainClass>
<addClasspath>true</addClasspath>
</manifest>
<manifestEntries>
<Class-Path>dependency-jars/*</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
执行时生成的 jar 在运行时无法找到其依赖项。以上有什么问题吗。
谢谢。
【问题讨论】:
-
我已经使用 maven-assembly-plugin 提供了答案。我过去曾使用过此解决方案,它也应该对您有用。如果您需要更多帮助,请在 cmets 中告诉我。
标签: java classpath executable-jar maven-jar-plugin