[英]Custom Maven Plugin that will fail an install or deploy
我編寫了一個自定義的maven插件,該插件使用svnkit來檢測是否存在未提交的本地更改,或者您的工作副本是否與svn存儲庫不同步,然后使mvn部署失敗。
這是執行代碼:
public void execute() throws MojoExecutionException, MojoFailureException {
PluginDescriptor pd = (PluginDescriptor)getPluginContext().get("pluginDescriptor");
MavenProject p = (MavenProject)getPluginContext().get("project");
//init log
Log log = getLog();
SVNHelper.initLogger(log);
//Throws MojoFailureException if there are uncommitted changes
checkForUncomittedChanges(p.getBasedir(), log);
//Throws MojoFailureException if the working copy is not up to date
checkForWorkingCopyUpToDate(p.getBasedir(), log);
}
然后在插件使用的pom.xml中,將其綁定到部署
正確調用了該插件,但是部署已經完成,構建失敗。 我可以將插件移到安裝階段執行,但在這種情況下,我不想安裝顯示構建失敗,我只想停止部署。
有什么我想念的嗎?
為您提供兩個建議:
(我們的方式)在SVN檢查之后使用Jenkins進行構建,並將Nexus安全性配置為僅允許Jenkins用戶進行部署。 這種方法不需要自定義插件(用戶可以從pom.xml中刪除它)。
修改默認生命周期。
我猜您可能已經完成了,只是將Mojo配置為@phase使其在部署階段觸發。 確保在同一位置定義部署階段的兩個目標(deploy:deploy和your:goal),然后確定執行順序。
為此,您需要定義一個自定義生命周期( http://www.sonatype.com/books/mvnref-book/reference/writing-plugins-sect-plugins-lifecycle.html )並在下指定兩個目標。 從來沒有做過,我不知道您是否可以簡單地覆蓋默認/ jar生命周期,或者是否必須創建自己的新包裝類型。
如有疑問,請認真考慮建議1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.