首页 文章

有条件地建造Maven肥胖 jar

提问于
浏览
2

我按照Building a fat jar using maven中的示例进行操作,现在我可以运行以下内容来构建/测试并安装我的jar .

mvn clean compile install

然而, install 现在需要更长的时间,因为我们现在正在建造一个胖 jar . 是否有可能有两个版本的安装,其中一个只是构建没有依赖关系的jar,另一个是这样做,另外构建胖jar,如:

mvn clean compile install
mvn clean compile install-fatjar

我知道 install-fatjar 不是一个有效的阶段,但只是想知道我想要完成的事情,即一个条件安装,只有在提供选项时才 Build 胖 jar .

2 回答

  • 4

    为胖jar创建配置文件并配置maven程序集插件以在此配置文件中创建胖jar .

    例如,使用此配置文件:

    <profiles>
        <profile>
            <id>fatjar</id>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <archive>
                                <manifest>
                                    <mainClass>fully.qualified.MainClass</mainClass>
                                </manifest>
                            </archive>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>       
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    

    然后,您可以通过激活配置文件来构建它

    mvn -P fatjar clean install
    

    其中 fatjar 是 Profiles ID .

    也可以激活多个配置文件

    mvn -P fatjar,release install
    
  • 1

    通常我们不使用fat-jar(或uber-jar)作为主要工件 .

    您可以使用Assembly或Shade插件来创建工件的变体(使用不同的分类器),这是一个超级jar .

    强烈建议您按原样保留“正常”工件 . 如果你只想偶尔使用uber-jar,可以在配置文件中使用assembly / shade插件创建“uber-jar”,并随时激活配置文件 . 然而,这仍然会产生一个“额外的”超级 jar ,而不是让你的主要神器成为一个超级 jar .

相关问题