2016-03-21 51 views
1

我正在構建一個多平臺的javafx應用程序。最後的過程是創建一個安裝程序(exe,dmg,deb ..和jre捆綁在一起)並將其上傳到一個特殊的「產品發佈」回購。鑑於javafx構建需要如何完成,它在3個不同的平臺上運行jenkins矩陣作業。最後一步是部署。我使用build-helper-maven插件附加安裝程序。Maven的部署沒有上傳任何pom文件

我能夠正確地上傳一個平臺的安裝程序,但由於部署似乎上傳了POM文件,因此無法再從另一個jenkins從站上傳。

首先,我遇到了maven上傳「main jar」的問題,但我設法通過將jar插件綁定到'none'階段(我使用創建自己的主jar的maven-javafx插件)來禁用該插件。不過,我無法禁用POM代和上傳。我已經設置

<generatePom>false</generatePom> 

的行家 - 部署 - 插件,但它似乎沒有任何效果(我假設它爲我已經禁用的主要JAR)。

是否可以完全禁用pom生成/上傳(類似於gradle的'uploadDescriptor false'選項)並且只上傳'附加的工件'?

編輯/注:我可能會嘗試部署文件選項旁邊,https://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html,但它會很高興地知道這是否可以對整個項目的水平

+0

您是否在某種基於Nexus/Artifactory/Archiva的版本中發佈了一個Maven回購?順便說一下:' ..'[maven-deploy-plugin](https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html)不存在,所以它可以沒有任何效果... – khmarbaise

+0

是的,聯繫。與中央代理/公司內部一樣,但是這個有不同的目錄路徑。這或多或少是一種「把戲」,可以將jenkins從屬節點上的任何東西推送到擁有相同憑據的電子磁盤上。上傳完成後,它無關緊要,因爲它是一個maven repo(即後續分發只使用磁盤) –

+0

因此,如果你使用這種類型的repo,爲什麼它有一個問題,那裏有pom文件?也許你需要採取不同的方式。將產生的構建工件部署到Nexus(存儲庫),並在Jenkins中的後續步驟中,您可以獲取構件(僅限安裝程序)並將它們部署到發行版回購中。但如果它是基於maven的,你需要有pom文件... – khmarbaise

回答

0

我設法解決這個問題。我使用deploy-file選項執行:

我將default-deploy綁定爲none以禁用它。然後我做了新的「本地部署」執行,我必須部署階段。在它的配置中,我把generatePom設置爲false,並將文件指向我之前用來附加它作爲副件(通過構建幫助程序插件)。我不得不再次使用coodrinates(即從項目*通過)。但沒有任何pom文件的工作,並從所有機器上傳安裝程序。我不得不重新啓用默認的jar創建,因爲maven抱怨沒有綁定的神器(我想我可以將包裝更改爲pom,反正它不會被上傳,因爲默認上傳被禁用,所以確定那裏)。

我想如果有更多的通用解決方案,它會是更正確的答案,但對我來說這已經足夠了。

+0

不會使用'wagon-maven-plugin'是一個更簡單的選項? https://stackoverflow.com/a/42468595/318054 – fnt