2

我按照使用 maven 构建胖 jar 中的示例进行操作,现在我可以运行以下命令来构建/测试和安装我的 jar。

mvn clean compile install

但是,install现在需要更长的时间,因为我们现在正在构建一个胖罐。是否可以有两个版本的安装,其中一个只构建没有依赖关系的 jar,另一个则这样做,另外构建 fat jar,例如:

mvn clean compile install
mvn clean compile install-fatjar

我知道install-fatjar这不是一个有效的阶段,但只是想说明我要完成的工作,即仅在提供选项时才构建胖 jar 的条件安装。

4

2 回答 2

5

为 fat jar 创建配置文件并配置 maven 程序集插件以在此配置文件中创建 fat 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个人资料 ID在哪里。

也可以激活多个配置文件

mvn -P fatjar,release install
于 2013-08-28T06:19:24.623 回答
1

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

您可以使用 Assembly 或 Shade 插件来创建工件的变体(使用不同的分类器),它是一个 uber-jar。

强烈建议您仍然保持“正常”工件原样。如果您只是偶尔需要 uber-jar,请将用于“uber-jar”创建的程序集/shade 插件放在配置文件中,并在需要时激活配置文件。但是,这仍然应该为您生成一个“额外的” uber-jar,而不是让您的主要工件成为一个 uber-jar。

于 2013-08-28T06:30:58.710 回答