• 创建并使用maven archetype的随笔


    maven骨架archetype的意义在于一些项目的基础项:如引入的maven组件,例如eureka,ribben等,不希望每次新建项目都重复做一遍,还有例如公司规范的log格式,单元测试工具等,在新建项目的时候,希望可以将这些自定义的东西一键生成。这里就简单的讲解一下maven管理的java Spring Boot的项目,如何建立骨架并使用。

    建立样例项目

    参见Spring boot的官网,然后可以引入一些需要的组件,并做一些必要的修改。

    生成项目骨架

    • 样例项目的根目录,pom文件引入
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-archetype-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <addDefaultExcludes>false</addDefaultExcludes>
    </configuration>
    </plugin>
    • 使用命令行,在项目根目录调用:mvn archetype:create-from-project

    • 生成target目录,target目录下:target/generated-sources/archetype就是真正的骨架项目,有对应的pom文件,src下有生成骨架相关的resource资源,这些资源就来自于原项目
     
    • 如果要调整骨架中生成的具体项目文件,需要更改对应的文件
    示例:/user-user/user-user-server/pom.xml
    <dependency>
    <groupId>com.hzphfin.user.user</groupId>
    <artifactId>user-user-api</artifactId>
    <version>${project.version}</version>
    </dependency>
     
    <dependency>
    <groupId>com.hzphfin.user.user</groupId>
    <artifactId>user-user-service</artifactId>
    <version>${project.version}</version>
    </dependency>
    在骨架中被手工修改为:
    <dependency>
    <groupId>${groupId}</groupId>
    <artifactId>${rootArtifactId}-api</artifactId>
    <version>${project.version}</version>
    </dependency>
     
    <dependency>
    <groupId>${groupId}</groupId>
    <artifactId>${rootArtifactId}-service</artifactId>
    <version>${project.version}</version>
    </dependency>
    • 如对目录及原忽略一些文件,要修改/target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
    示例:modules相关目录修改如下
    <modules>
    <module id="${rootArtifactId}-api" dir="__rootArtifactId__-api" name="${rootArtifactId}-api">
    </module>
    <module id="${rootArtifactId}-server" dir="__rootArtifactId__-server" name="${rootArtifactId}-server">
    </module>
    <module id="${rootArtifactId}-service" dir="__rootArtifactId__-service" name="${rootArtifactId}-service">
    </module>
    <module id="${rootArtifactId}-dao" dir="__rootArtifactId__-dao" name="${rootArtifactId}-dao">
    </module>
    </modules>
     
    • maven archetype默认会有以下一些build-in的变量,用这些变量替换文件中的原有的值
    ${rootArtifactId} controller
    ${artifactId} controller-(api,dao,server,service)
    ${package}  
    ${packageInPathFormat}  
    ${groupId} com.hzphfin.app
    ${version} 0.0.1-SNAPSHOT
    示例:
    <groupId>com.hzphfin.app</groupId>
    <artifactId>controller</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    变为:
    <groupId>${groupId}</groupId>
    <artifactId>${artifactId}</artifactId>
    <version>${version}</version>
    <packaging>pom</packaging>
     
    • 如果是目录名更改时使用变量,使用类似这样的结构:__artifactId__
    • 如果要自定义一些替换的变量,需在/target/generated-sources/archetype/src/main/resources/META-INF/maven/archetype-metadata.xml加入如下的key-value
    <requiredProperties>
    <requiredProperty key="groupId"/>
    <requiredProperty key="artifactId"/>
    <requiredProperty key="version">
      <defaultValue>1.0.0</defaultValue>
    </requiredProperty>
    </requiredProperties>
     

    部署项目骨架

    以上已完成骨架的创建,接下来说骨架的部署,可以分本地和远程部署
    命令行切换到骨架的根目录:/target/generated-sources/archetype
    执行:mvn install 将骨架项目安装在本地
    执行:mvn deploy 将骨架项目上传到nexus服务器(具体上传配置及设置骨架项目pom文件中加入distributionManagement请参见其他文档)
     

    使用项目骨架生成项目

    以下讲解完成后,如何在IDE新建项目:
    安装后,在eclipse中新建maven项目


     
    本地安装的骨架,在Default Local应有显示,远程安装的骨架,请先进入configure配置远程来源后找到对应骨架
    输入必须的变量后,点击finish就能新建完成
     
  • 相关阅读:
    51 数据中重复的数字
    64 数据流中的中位数
    79. Word Search
    93. Restore IP Addresses
    547. Friend Circles
    Epplus Excel 导入 MSSQL 数据库
    用来更新服务的bat 脚本
    ASP.Net MVC 引用动态 js 脚本
    8、结构的构造器应该显式调用!!!(坑)
    Task 线程重用导致等待!
  • 原文地址:https://www.cnblogs.com/rinson/p/8350481.html
Copyright © 2020-2023  润新知