2017-02-23 47 views
0

在我們公司,我們使用maven-plugin-plugin v3.5創建了一個Maven插件,通常包含20kb。如何用maven-plugin-plugin生成Fat Maven插件?

問題發生在兩天前,因爲repo.jenkins-ci.org代理不能正常工作。所以,我們的客戶建立受到了影響,因爲它是無法下載的插件我們的依賴,否則構建由於:

Failed to collect dependencies at our-project:jar:1.6.2 -> our-project:jar:1.6.2 -> com.devfactory.utqg:utqg-github:jar:1.6.2 -> org.kohsuke:github-api:jar:1.77 -> com.infradna.tool:bridge-method-annotation:jar:1.14 -> org.jenkins-ci:annotation-indexer:jar:1.4: Failed to read artifact descriptor for org.jenkins-ci:annotation-indexer:jar:1.4: Could not transfer artifact org.jenkins-ci:jenkins:pom:1.26 from/to repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/): Failed to transfer file: http://repo.jenkins-ci.org/public/org/jenkins-ci/jenkins/1.26/jenkins-1.26.pom. Return code is: 502 , ReasonPhrase:Bad Gateway. -> [Help 1]

因此,我們對這個問題的辦法是集中在創造一個脂肪Maven插件( 不是脂肪罐!)。但是,使用Maven Shade插件不適合複製工件,因爲jar簽名導致插件執行失敗。

有沒有人生成過胖的Maven插件?如果是,如何?

+0

你需要創建一個jar jar文件嗎?對。如果是這樣,請使用maven-assembly-plugin或maven-shade-plugin。此外使用repo.jenkins-ci.org是下載maven插件的錯誤地點。 Maven插件位於Maven中,默認情況下在Maven中配置。最好是開始使用存儲庫管理器.... – khmarbaise

+0

no @khmarbaise,我需要創建一個FAT maven插件,根據定義,它是一個Jar文件。我正在使用maven-plugin-plugin。 –

+0

這個插件的目的是什麼?所以你重寫maven-shade-plugin/maven-assembly-plugin。 – khmarbaise

回答

1

該問題在兩天前開始,因爲repo.jenkins-ci.org代理不是 正常工作。所以,我們的客戶建立受到了影響,因爲它是無法下載的插件我們的依賴,

我建議運行你自己的Maven倉庫管理,以避免這些類型的問題:https://maven.apache.org/repository-management.html

配置單個組在您的settings.xml(鏡像)中:http://books.sonatype.com/nexus-book/2.8/reference/maven-sect-single-group.html

不要管理您的POM中的存儲庫,而只能在您的Maven Repository Manager中管理存儲庫。

+0

我們目前擁有內部Nexus,但我們無法保證我們的回購將在所有請求中100%的時間內投入使用。此外,這個問題的依賴不是我們的,而是樹上的第四層內部依賴。 (我們的jar - >第一個3party jar - >第二個3party jar - > jar給出問題) 所以,我們不想擁有20kb的maven插件(這是我們的尺寸),我們想要一個15mb的maven插件,裏面的文件。 有什麼想法嗎? –

+0

這不是推薦的方式,如果您沒有可用的回購,我認爲您仍然會遇到類似的問題。我真的應該得到一個穩定的Maven Repository Manager。你用什麼產品?你有什麼問題?也許對後續問題很有幫助。 – Puce

+0

您可以爲第三方庫定義任意數量的代理回購站。關於這一點應該沒有問題。 – Puce