创建一个只包含一个主类及其所有依赖项的jar

时间:2014-08-15 12:51:58

标签: java maven executable-jar

我有一个包含许多主类的Java。我想创建一个只有一个主类而且只有它的依赖项的Jar。我只想将主类和依赖项的代码包含在jar中。我用Maven制作我的罐子。

1 个答案:

答案 0 :(得分:0)

maven的方式是拥有一个父项目,并为每个应用程序提供一个模块项目。每个应用程序项目都有一个在META-IBF / MANIFEST.MF中指定的Main-Class,并且单独的最小依赖项。可能需要有一个或多个内部依赖项的库项目。

/all
    /lib-a
        pom.xml --> lib-a-0.1-SNAPSHOT.jar
    /lib-b
        pom.xml --> lib-b-0.1-SNAPSHOT.jar
    /app-m
        pom.xml --> app-m-0.1-SNAPSHOT.jar
    /app-n
        pom.xml --> app-n-0.1-SNAPSHOT.jar
    ...
    pom.xml --> all-src-0.1-SNAPSHOT.zip
            --> all-0.1-SNAPSHOT.jar

应用程序生成一个带有Main-Class:...条目的清单。 依赖关系是根据应用程序定义的。

你可能想到只有一个项目,以及一个处理本地依赖关系的智能maven插件,但为什么。

您可以将所有来源保留在一个项目中,比如生成带有源的zip文件。 每个应用程序项目都可以从zip中获取特定的源列表。硬。

如果你确实想要一些非常定制的东西,我认为回到 ant + ivy 会更有效。