archetype:create-from-project命令建立maven模板工程(自定義專案模板並且上載到maven私服)

陳南志發表於2017-03-11

 

目            錄

1在eclipse中修改maven配置

      1.1將eclipse自帶的修改為自己系統安裝的

      1.2 使用自己的配置檔案

      1.3 修改maven的setting.xml檔案

2修改project中的pom.xml檔案

      2.1 引入archetype外掛

      2.2 新增distributionManagement配置

      2.3 修改project的版本號

3執行maven命令

      3.1 配置工程並且執行archetype:create-from-project命令

      3.2 在target目錄裡的pom.xml中新增配置

      3.3 在archetype目錄下執行maven的 install命令

      3.4 在archetype目錄下執行maven的 deploy命令

4測試-新建maven工程

5其它說明

      5.1 關於distributionManagement的配置

      5.2 在很對artchetype執行maven命令時候的問題


1在eclipse中修改maven配置

1.1將eclipse自帶的修改為自己系統安裝的

         

1.2 使用自己的配置檔案

  

1.3 修改maven的setting.xml檔案

    在servers節點的中增加配置:


xml配置內容是:
   
nexus-snapshotsdeploymentdeployment123nexus-releasesdeploymentdeployment123

注意:

       其中id可以隨便填,的是要和待會的pom.xml裡的id對應上,username和password是可以登入nexus搭建的maven私服系統,並且擁有部署許可權的使用者名稱和密碼,nexus預設的部署使用者就是deployment,密碼是deployment123


2修改project中的pom.xml檔案

2.1 引入archetype外掛

         該配置放在<plugins></plugins>節點內


       
org.apache.maven.pluginsmaven-archetype-plugin2.4nexus-snapshotsSnapshotshttp://localhost:8081/nexus/content/repositories/snapshots/nexus-releasesReleaseshttp://localhost:8081/nexus/content/repositories/releases/

2.2 新增distributionManagement配置

該配置放在< project ></project >節點內就行



程式碼是:

    
org.apache.maven.pluginsmaven-archetype-plugin2.4nexus-snapshotsSnapshotshttp://localhost:8081/nexus/content/repositories/snapshots/nexus-releasesReleaseshttp://localhost:8081/nexus/content/repositories/releases/

注意:上面的兩個id需要和maven的serttin.xml中配置在serviers節點內的server節點的id對應起來。


2.3 修改project的版本號



注意:
         將0.0.1-SNAPSHOT 改成 1.0.0以上,這樣,就會發布在realease目錄裡。




3執行maven命令

3.1 配置工程並且執行archetype:create-from-project命令


 右鍵開啟配置介面:





進行配置:





注意:MavenRuntime一定要選中剛才自己安裝的maven,注意Base directory的位置,那裡填的是工程的根目錄。


點選apply 使得配置有效,點選Run執行,執行成功後控制檯輸出:

   




3.2 在target目錄裡的pom.xml中新增配置


 

    maven命令執行成功後,此時工程的target目錄下多了東西:




      開啟上圖紅框中的pom.xml檔案,注意是target下面的,而不是工程最外層的那個pom.xml,路徑:自己的工程路徑/target/generated-sources/archetype/pom.xml

 新增部署的配置:




          注意:上面的兩個id需要和maven的serttin.xml中配置在serviers節點內的server節點的id對應起來。上面這個步驟很關鍵,一定要開啟/target/generated-sources/archetype/pom.xml ,進行配置,注意這次是在target裡的pom.xm,不是工程src目錄下的那個pom.xml了,這點很關鍵。


3.3 在archetype目錄下執行maven的 install命令





                 注意:Base  directory的地方不是工程的跟目錄,而是target裡面的archetype目錄,

  工程位置\arget\generated-sources\archetype

 

點選Appy,點選Run,執行成功後,控制檯輸出:






3.4 在archetype目錄下執行maven的 deploy命令




              注意:Base  directory的地方不是工程的跟目錄,而是target裡面的archetype目錄,

  工程位置\arget\generated-sources\archetype



點選Appy,點選Run,執行成功後,控制檯輸出:






模板工程部署到私服已經成功了,登入nexus系統來檢視:






4 測試-新建maven工程

新建工程

      




連續兩個下一步,然後點選configue





點選add Remote Catalog






在catalog File一欄中填上已經發布成功的archetype-catalog.xml的url路徑:

  http://localhost:8081/nexus/content/repositories/releases/archetype-catalog.xml

在description一欄填上你對該模板的描述,描述可以任意寫。





點選Apply,點選OK按鈕,然後就可以看到:






          注意:如果你沒有按照之前的步驟修改模板工程的版本號,而是使用預設的0.0.1-SNAPSHOT,那麼你需要勾選中Include snapshot archetypes,才能看到你釋出的模板。

 

選中模板,下一步之後,彈出填寫工程名字的對話方塊:





    填上一個名稱,版本號可改也可不改,不改這裡就用預設的0.0.1.SNAPSHOT。

  點選Finish,可以看到已經使用模板,成功的建立了一個工程,模板中有的東西,新工程裡都有了。





5其它說明

      在很對artchetype執行maven命令時,你如果不在Maven  Runtime 的配置中選擇自己安裝的maven,而是使用eclipse自帶的



你有可能會得到一個錯誤 ,該錯誤是:





重點看:

   



INFO] BUILD FAILURE

[INFO]------------------------------------------------------------------------

[INFO] Total time: 1.741 s

[INFO] Finished at: 2016-09-06T20:49:20+08:00

[INFO] Final Memory: 15M/155M

[INFO]------------------------------------------------------------------------

[ERROR] Failed to execute goalorg.apache.maven.plugins:maven-archetype-plugin:2.4:create-from-project(default-cli) on project webproject: ${maven.home} is not specified as adirectory: 'E:\eclipse_workspace_2015\webproject\EMBEDDED'. -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of theerrors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switch toenable full debug logging.


       解決該錯誤的方法,最好就是配置MavenRuntime,當然配置環境變數也可以解決該問題,但如果你使用配置環境變數的方法的話,記得需要重啟eclipse。














相關文章