簡體   English   中英

有條件地構建Maven胖子罐

[英]Building Maven fat jar conditionally

我按照使用maven構建胖罐子中的示例進行操作 ,現在可以運行以下內容來構建/測試和安裝我的罐子。

mvn clean compile install

但是,現在install需要花費更多時間,因為我們正在構建一個胖罐。 是否可能有兩個版本的安裝,其中一個版本僅構建不依賴項的jar,另一個版本執行此操作,另外還構建胖jar,例如:

mvn clean compile install
mvn clean compile install-fatjar

我知道install-fatjar並不是一個有效的階段,只是想對我要完成的事情有所了解,即有條件的安裝,僅在提供選項時才構建fat jar。

為胖子創建一個概要文件,並配置Maven程序集插件以在該概要文件中創建胖子。

例如,使用以下配置文件:

<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

通常,我們不使用fat-jar(或uber-jar)作為主要工件。

您可以使用Assembly或Shade插件來創建工件的變體(具有不同的分類器),它是一個uber-jar。

強烈建議您仍然保持“正常”工件。 如果僅偶爾需要uber-jar,請在配置文件中使用組裝/陰影插件創建“ uber-jar”,並在需要時激活配置文件。 但是,這仍將為您生成一個“額外的”超級容器,而不是使您的主要工件成為超級容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM