我有多个项目,但只有一个有Main类。具有Main类的那个取决于其他项目。这些项目在Eclipse中引用,但是当我导出JAR时,其他项目不会与该JAR一起导出。
如何导出我的主项目并将其他项目“包含”到同一个JAR中?我宁愿没有几个JAR,必须在命令行中将它们定义到我的Classpath中。
答案 0 :(得分:8)
不要这么做。使用Eclipse自己的导出器。首先确保您在主项目的构建路径中将其他项目引用为 Projects 。完成后,只需右键单击主项目,选择 Export ,然后选择 Java>可运行的JAR文件。选择启动配置(您用于在本地测试main()
类),然后选择3 Library Handling 选项来打包JAR:
第一个选项只是重新打包JAR中的其他项目的类。一切都是平淡无奇的。
第二个选项会将其他项目作为JAR复制到JAR中。这通常不会那样工作,但是Eclipse还添加了一个特殊的启动器,它基本上将嵌入式JAR复制到内存中,在那里提取,将文件添加到类加载器中,然后使用该类加载器调用main()
。
第三种选择是你不希望这种特殊情况。
答案 1 :(得分:1)
我认为Eclipse本身使用了针对Java项目的ant和build.xml脚本,可以使用Maven,并且在这两种情况下都有方法将它们组合到一个jar中,这个线程回答了我认为的相同问题:
答案 2 :(得分:1)
如果我这样做,我会对项目进行'mavenize',对每个项目依赖项使用maven依赖项,然后使用
mvn assembly:assembly
有关此插件的更多信息,请参阅http://maven.apache.org/plugins/maven-assembly-plugin/