[英]Deploying a Maven one-jar deploys wrong artifact
我正在嘗試構建一個單jar Java實用程序。 在之前的SO帖子中 ,有人建議使用onejar-maven-plugin插件。 我試過了,但我遇到的問題是插件(1.4.4)創建了一個帶有one-jar.jar擴展名的新工件。 因此,我最終在我的目標文件夾中有2個jar,當我嘗試安裝和/或部署時,它會部署原始jar(而不是one-jar)。
我已經從目標文件夾運行了一個jar.jar工件,它完全按預期工作,所以我很滿意。 但是,如果我無法使用標准mvn deploy
命令語法正確部署它,則插件實際上並未按預期或按要求執行。
有沒有辦法正確構建pom配置以避免此問題?
我目前的pom寫道:
<plugin>
<groupId>com.jolira</groupId>
<artifactId>onejar-maven-plugin</artifactId>
<version>1.4.4</version>
<executions>
<execution>
<configuration>
<mainClass>com.nbfg.cws.cs.lendingsimulationservice.Client</mainClass>
<onejarVersion>0.97</onejarVersion>
<attachToBuild>true</attachToBuild>
</configuration>
<goals>
<goal>one-jar</goal>
</goals>
</execution>
</executions>
</plugin>
運行mvn deploy
時的Maven輸出:
測試運行:0,失敗:0,錯誤:0,跳過:0
[INFO]
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ lss-client ---
[INFO]
[INFO] --- onejar-maven-plugin:1.4.4:one-jar (default) @ lss-client ---
[INFO] Using One-Jar to create a single-file distribution
[INFO] Implementation Version: 0.0.1-SNAPSHOT
[INFO] Using One-Jar version: 0.97
[INFO] More info on One-Jar: http://one-jar.sourceforge.net/
[INFO] License for One-Jar: http://one-jar.sourceforge.net/one-jar-license.txt
[INFO] One-Jar file: C:\Dev\Eclipse Indigo\lssClient\target\lss-client-0.0.1-SNAPSHOT.one-jar.jar
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ lss-client ---
[INFO] Installing C:\Dev\Eclipse Indigo\lssClient\target\lss-client-0.0.1-SNAPSHOT.jar to C:\Users\C61271B4\.m2\repository\com\cws\cs\lss\lss-client\0.0.1-SNAPSHOT\lss-client-0.0.1-SNAPSHOT.jar
[INFO] Installing C:\Dev\Eclipse Indigo\lssClient\pom.xml to C:\Users\C61271B4\.m2\repository\com\cws\cs\lss\lss-client\0.0.1-SNAPSHOT\lss-client-0.0.1-SNAPSHOT.pom
[INFO] Installing C:\Dev\Eclipse Indigo\lssClient\target\lss-client-0.0.1-SNAPSHOT.one-jar.jar to C:\Users\C61271B4\.m2\repository\com\cws\cs\lss\lss-client\0.0.1-SNAPSHOT\lss-client-0.0.1-SNAPSHOT-onejar.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.874s
[INFO] Finished at: Tue Jun 26 13:08:34 EDT 2012
[INFO] Final Memory: 21M/512M
[INFO] ------------------------------------------------------------------------
謝謝,
埃里克
根據文檔,您應該添加准確解決您問題的配置,以附加構建的onejar文件。
<!-- Optional, default is false -->
<attachToBuild>true</attachToBuild>
要使用創建的工件,您需要通過選項添加由onejar插件定義的分類器:
<!-- Optional, default is "onejar" -->
<classifier>onejar</classifier>
這意味着:
<dependency>
<groupId>..</groupId>
<artifactId>..</artifactId>
<classifier>onejar</classifier>
<verison>x.y.z</version>
</dependency>
重要的是使用分類器。 否則,您將獲得原始工件(如您所述)。
如果您希望有機會將生成的onejar用作主要工件(僅部署),則應將maven-shade-plugin用於此類目的。 onejar插件的文檔不提供這樣的選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.