【发布时间】:2014-07-30 11:45:22
【问题描述】:
我的项目有一些依赖项,它们是 jar 文件。我的项目将被打包为 jar 文件。
是否可以打包所有文件,包括从我的项目源编译的类以及依赖的 jar 文件下的所有类。 我正在使用 JDK 1.6+。
如果可能的话,如何使用 command 或 ant 或 Eclipse 来做到这一点?
【问题讨论】:
我的项目有一些依赖项,它们是 jar 文件。我的项目将被打包为 jar 文件。
是否可以打包所有文件,包括从我的项目源编译的类以及依赖的 jar 文件下的所有类。 我正在使用 JDK 1.6+。
如果可能的话,如何使用 command 或 ant 或 Eclipse 来做到这一点?
【问题讨论】:
将依赖jar类文件复制到项目jar文件中:
通过命令使用 Maven 插件 maven-shade-plugin:mvn package
<dependencies> 下的所有类文件都将包含在您的项目 jar 文件中。
<dependencies>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>Test.jar</finalName>
</configuration>
</plugin>
</plugins>
</build>
【讨论】:
你问的是可能的。但不是一个好方法。 Jar 文件就像组件一样,应该保留在它们自己的 jar 文件中。 如果将所有类文件都包含在一个jar中,就无法复用,而且jar文件会太大。
我推荐你使用 Maven (http://maven.apache.org),它可以为你管理你的依赖。
【讨论】:
在 Eclipse 中使用导出选项。 Export->Runnable Jar 并选择“Package the required libraries into generated jar”选项
这应该符合您的需要。
HTH, 凯沙瓦。
【讨论】: