zoukankan      html  css  js  c++  java
  • 创建并使用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就能新建完成
     
  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/rinson/p/8350481.html
Copyright © 2011-2022 走看看