脚手架项目生成记录

        公司每次做新项目都要去搭建一套新的架子,形成新的服务。其实大部分的架子都差不多,但是每次都要重新建包,引入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

 5)如果在最后一步出现了如下界面导致卡死:

请添加参数  -DarchetypeCatalog=internal

 

比如 

mvn archetype:generate -DarchetypeGroupId=com.gwm.lafeng

-DarchetypeArtifactId=gwm-lafeng-lovecar

-DarchetypeVersion=1.0.0-SNAPSHOT

-Ddatabase=dev_mkt_lafeng_lovecar

-DgroupId=com.gwm.motuo

-DartifactId=gwm-motuo-lovecar

-Dversion=1.0.0-SNAPSHOT

-DapplicationName=LoveCarApplication

-Dpackage=com.motuo.lovecar

-DarchetypeCatalog=internal

参考 https://blog.csdn.net/Only_Wan/article/details/52975760

    遇到的问题大概有这些。记录下。

posted @ 2020-11-30 20:45  Doyourself!  阅读(1017)  评论(0编辑  收藏  举报