2016-09-16 79 views
2

Here是jfrom artifactory插件概述。他們告知:爲什麼在驗證階段調用jfrog maven artifactory插件?

插件的調用階段默認爲「驗證」,我們建議您不要更改它,以便在Maven構建的生命週期中儘早調用插件。

因爲我明白(我錯了嗎?)這個插件是用來部署maven項目的。所以這個插件應該「等待」,直到所有的測試都通過了,源代碼才被編譯,並且只在解除部署階段打包和部署工件,不是嗎?

問題:爲什麼它鏈接到驗證階段?

回答

1

事實上,artifactory-maven-plugin應用了與通常的mojo(Maven目標)實現不同的模式:它依賴於Maven Lifecycle listeners/extensions

綜觀其github repository的魔力實際上是:

  • 確保跳過maven-deploy-plugindefault binding通過settingmaven.deploy.skip屬性true
  • 將自定義的Maven監聽到構建會議上,BuildInfoRecorderLifecycleParticipant
  • 然後在適當的時候通過其插件有效地deploys

validate相結合是必要的,有效地跳過默認deploy行爲,並註冊了自己的聽衆。

+1

這是一個100%正確的答案。我們這樣做的原因是一次部署多項目構建的所有模塊,防止構建失敗部署結果。 – JBaruch

1

我已經看過該插件的內部source code,發現這條線:

String deployGoals = 'deploy,maven-deploy-plugin' 

此字段在recordBuildInfo方法中使用。這種方法註冊類BuildInfoRecorder作爲偵聽器,其中calls真實deploy方法當session ends

相關問題