我有两个maven项目,第二个项目扩展了第一个项目的一些类。我想创建包含第一个项目的所有依赖项的jar文件,并将其作为依赖项包含在另一个项目中。我很长一段时间都在寻找这个,有可能吗?
我是maven的新手,对此的任何帮助都将受到高度赞赏。
由于
答案 0 :(得分:1)
如果您只想将依赖项添加到另一个项目,则将第二个项目依赖项添加到新项目中,第一个将继承并自动包含。这就是所谓的传递依赖。在免费书籍Maven: The Complete Reference中了解更多相关信息。
答案 1 :(得分:0)
如果我理解你,你想创建一个包含所有依赖关系的超级jar,对吧?
请参阅此问题How can I create an executable JAR with dependencies using Maven?
答案 2 :(得分:0)
在第二个项目的POM文件中,在“依赖项”部分下指定第一个项目maven坐标(groupId,artifactId,version,packaging)。它将传递性地获取所有依赖的工件。
虽然在Maven中可以生成一个包含所有依赖项的独立jar。为此,您可以使用maven-shade-plugin。 (Reference)
答案 3 :(得分:0)
有两种方法可以创建一个胖罐。你将jar本身包含在依赖的jar中。在这种情况下你不会有太多控制权,而maven assembly plugin会完成工作。或者,您可以解压缩jar并将所有内容压缩在一起以创建新jar。你必须决定哪一个最适合你。如果你有相同类的多个版本,那么在新jar中包含整个jar会有所帮助,但如果版本是连贯的,最好通过解压缩和压缩所有内容来创建jar。对于第二个过程,我建议使用maven shade plugin创建超级jar。