Eclipse:将多个项目打包到一个JAR中

时间:2011-08-28 01:29:56

标签: eclipse jar

我有多个项目,但只有一个有Main类。具有Main类的那个取决于其他项目。这些项目在Eclipse中引用,但是当我导出JAR时,其他项目不会与该JAR一起导出。

如何导出我的主项目并将其他项目“包含”到同一个JAR中?我宁愿没有几个JAR,必须在命令行中将它们定义到我的Classpath中。

3 个答案:

答案 0 :(得分:8)

不要这么做。使用Eclipse自己的导出器。首先确保您在主项目的构建路径中将其他项目引用为 Projects 。完成后,只需右键单击主项目,选择 Export ,然后选择 Java>可运行的JAR文件。选择启动配置(您用于在本地测试main()类),然后选择3 Library Handling 选项来打包JAR:

enter image description here

第一个选项只是重新打包JAR中的其他项目的类。一切都是平淡无奇的。

第二个选项会将其他项目作为JAR复制到JAR中。这通常不会那样工作,但是Eclipse还添加了一个特殊的启动器,它基本上将嵌入式JAR复制到内存中,在那里提取,将文件添加到类加载器中,然后使用该类加载器调用main()

第三种选择是你不希望这种特殊情况。

答案 1 :(得分:1)

我认为Eclipse本身使用了针对Java项目的ant和build.xml脚本,可以使用Maven,并且在这两种情况下都有方法将它们组合到一个jar中,这个线程回答了我认为的相同问题:

Clean way to combine multiple jars? Preferably using Ant

答案 2 :(得分:1)

如果我这样做,我会对项目进行'mavenize',对每个项目依赖项使用maven依赖项,然后使用

mvn assembly:assembly

有关此插件的更多信息,请参阅http://maven.apache.org/plugins/maven-assembly-plugin/