腳手架項目生成記錄


        公司每次做新項目都要去搭建一套新的架子,形成新的服務。其實大部分的架子都差不多,但是每次都要重新建包,引入pom依賴,配置數據源,修改日志文件,配置文件修改,類目錄結構修改等等。每次步驟都差不多,主要是耗時,有時候甚至出個問題都要解決半天。那么有沒有一種方式可以從這里面解放出來? 有,就是maven的腳手架。

        以我自己搭建的一套服務為准,現在把這套搭建好的架子使用腳手架的方式重新生成。先看下當前的目錄      

 

 

 

 

   這個是當前大概的目錄結構,我以這個為基准,在搭建一套新的服務。就是變下名稱,以下是步驟:

  1)在當前目錄下 使用maven命令:

     

    mvn clean archetype:create-from-project
   
 
    用這個命令的主要目的是生成target 文件,在target里面有maven給我們生成好的可編譯文件。生成好的截圖如下(如有問題下面有記錄)
  
    

 

 

 
2)進入到target目錄的generated-sources的 archetype 目錄下,執行命令 

 

mvn clean archetype:create-from-project -Darchetype.properties

 

  主要是使用archetype生成源碼。注意一定要是在指定的target目錄下,注意一定要是在指定的target目錄下,

注意一定要是在指定的target目錄下,重要事情說3遍。以我的為例:

    /Users/fan/workspace/summary/target/generated-sources/archetype

 

3) 第二步執行成功后, 使用命令.

   mvn  clean install 

 

    主要是使用成archetype生成jar包。注意 當前操作仍然是在target目錄下

注意 當前操作仍然是在target目錄下。

注意 當前操作仍然是在target目錄下。 我的為例

  /Users/fan/workspace/summary/target/generated-sources/archetype

 

  以上三步都成功后,就可以使用命令行生成項目了

4)以這個項目為例,打開一個新的文件,使用命令行:

   

mvn archetype:generate -DarchetypeGroupId=com.sq.summary

-DarchetypeArtifactId=summary-archetype

-DarchetypeVersion=0.0.1-SNAPSHOT

-Ddatabase=olympic-winter

-DgroupId=com.sq.summary

-DartifactId=summary-archetype

-Dversion=0.0.1-SNAPSHOT

-DapplicationName=summaryTest

-Dpackage=com.sq.summary

 

 

 

----------------------------------------------------------------

需要配置的參數說明
-DarchetypeGroupId=com.sq (可以看target/generated-sources/archetype/的pom文件的groupId)
-DarchetypeArtifactId=summary-archetype (可以看target/generated-sources/archetype/的pom文件的artifactId)
-DarchetypeVersion=1.0-SNAPSHOT (可以看target/generated-sources/archetype/的pom文件的version)

-DartifactId=summary-archetype(新的artifactId)

-Dversion=0.0.1-SNAPSHOT(新的version)

-DapplicationName=summaryTest(新的服務名稱)

-Dpackage=com.sq.summary(新的包名)

 

 

 

 

生成完成打開查看和現在的目錄一模一樣,只是包名、version等改為了我們這次新命名的了。

 

 

 

 
 
   遇到的問題記錄
    1) 使用命令行mvn clean archetype:create-from-project  步驟一時候報錯,

Invoker process ended with result different than 0!

 

原因:使用 mvn的archetype生成的jar包的默認artifactId帶有后綴 -archetype,但是命令行里面沒有帶 需要帶上才行:

  

mvn archetype:generate -DarchetypeGroupId=com.sq.summary -DarchetypeArtifactId=summary-archetype -DarchetypeVersion=0.0.1-SNAPSHOT -Ddatabase=olympic-winter -DgroupId=com.sq.summary -DartifactId=summary-archetype -Dversion=0.0.1-SNAPSHOT -DapplicationName=summaryTest -Dpackage=com.sq.summary

 

    遇到的問題大概有這些。記錄下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM