簡體   English   中英

自定義Maven插件將導致安裝或部署失敗

[英]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中,將其綁定到部署

正確調用了該插件,但是部署已經完成,構建失敗。 我可以將插件移到安裝階段執行,但在這種情況下,我不想安裝顯示構建失敗,我只想停止部署。

有什么我想念的嗎?

為您提供兩個建議:

  1. (我們的方式)在SVN檢查之后使用Jenkins進行構建,並將Nexus安全性配置為允許Jenkins用戶進行部署。 這種方法不需要自定義插件(用戶可以從pom.xml中刪除它)。

  2. 修改默認生命周期。

我猜您可能已經完成了,只是將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM