spring-cloud-lumos 脚手架

1. 使用方式:

1.1 引入脚手架

在idea里添加脚手架配置

1.2 创建项目

创建项目时,指定脚手架:

2. 创建脚手架方式

  1. 进入spring-cloud-lumos-archetype模块根目录,执行:mvn archetype:create-from-project
  2. 执行cd target/generated-sources/archetype
  3. 修改target/generated-sources/archetype/src/main/resource/META-INF/maven目录下的artchetype-metadata.xml:<br/>

    1. ymlfileSet上添加filtered="true",这样yml文件的变量${artifactId}就可以被替换了
    2. Dockerfile提成一个独立的fileSet,上添加filtered="true",这样Dockerfile文件的变量${artifactId}就可以被替换了

      <fileSet filtered="true" encoding="UTF-8">
      <directory></directory>
      <includes>
      <include>Dockerfile</include>
      </includes>
      </fileSet>     
    3. 其他需要替代变量的,也用以上添加filtered="true"的方式。
  4. 执行mvn clean install,可以看到本地仓库的根目录有了archetype-catalog.xml文件,如果有多个settings.xml,可以在mvn指令里通过--settings来指定文件,比如:mvn clean install --settings /usr/local/apache-maven-3.6.1/conf/settings.xml
  5. 如果要上传到远程,执行mvn deploy,如果有多个settings.xml,可以在mvn指令里通过--settings来指定文件:<br/>

    1. 先修改target/generated-sources/archetype下的pom文件,否则会报Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:3.1.1:deploy (default-deploy) on project spring-cloud-lumos-archetype-archetype: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::url parameter 。其中repositoryid要跟mavensettings.xml文件里的serverid要一样,否则上传鉴权会失败。

        <distributionManagement>
       <repository>
      <id>mirrors-releases</id>
      <name>thirdparty</name>
      <url>https://xxx.xxx.com/repository/maven/thirdparty</url>
       </repository>
       <snapshotRepository>
      <id>mirrors-snapshots</id>
      <name>thirdparty-snapshots</name>
      <url>https://xxx.xxx.com/repository/maven/thirdparty-snapshots</url>
       </snapshotRepository>
        </distributionManagement>      
    2. doc目录下的pom.xml是个示例,可直接复制&替换,无需上面一步的操作。
  6. archetype-catalog.xml上传到仓库,让其他人也可以使用。(如果没有升级脚手架的版本的话,那就无需操作这一步,因为文件里的内容不会有变化)

    1. 执行mvn deploy:deploy-file -Durl=https://xxx.xxx.com/repository/maven/thirdparty-snapshots -DrepositoryId=mirrors-snapshots -Dfile=archetype-catalog.xml -DgroupId=com.tencent.lumos -DartifactId=spring-cloud-lumos-archetype-archetype -Dversion=0.0.2-SNAPSHOT -Dpackaging=xml。<br/>
    2. TODO:通过这种方式deploy的文件,仓库里的文件名会被修改成其他文件名,而不是archetype-catalog.xml,后续有时间了再看下有没有其他方式上传

noname
314 声望49 粉丝

一只菜狗


引用和评论

0 条评论