精华内容
下载资源
问答
  • 选择一个maven项目作为模板,进入项目根目录 执行:mvn archetype:create-from-project,target/generated-sources/archetype就是我们要的项目了 项目中有些地方需要自己手工替换成变量,工具并没有那么智能。 1)...

    生成模板

    选择一个maven项目作为模板,进入项目根目录
    执行:mvn archetype:create-from-project,target/generated-sources/archetype就是我们要的项目了

    项目中有些地方需要自己手工替换成变量,工具并没有那么智能。

    1)不用抽取变量的地方被写成了变量

    import ${package}.dao.po.User;   // 这里的com.free,我们希望替换成变量${pacakge}
    import ${package}.log.core.Logger;  // 这里的com.free,是依赖jar包里面的类,不能替换${pacakge}
    import com.free.log.core.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;
    

    2)该替抽取成变量的地方没有写成常量

    #!/bin/bash
    export JAVA_HOME=/usr/bin/hadoop/software/java8
    export APP_NAME=demo-api   # 这里的demo-api我们希望替换成module的名称${rootArtifactId}
    export APP_MAIN_CLASS=${package}.${rootArtifactId}.Application
    

    模板命名

    修改target/generated-sources/archetype/archetype/pom.xml

      <groupId>test</groupId>
      <artifactId>archetype-template-generator-archetype</artifactId>
      <version>1.0-SNAPSHOT</version>
    

    然后执行:mvn -Dmaven.test.skip=true clean install,它会在本地仓库的根目录下生成一个archetype-catalog.xml文件

    发布模板

    pom.xml中添加发布配置,发布到自己的私服。如果模板只自己用,省略此步骤。

    <!-- 发布配置 -->
    <distributionManagement>
       <repository>
          <id>releases</id>
          <name>Local Nexus Repository</name>
          <url>http://ip/nexus/content/repositories/releases/</url>
       </repository>
       <snapshotRepository>
          <id>snapshots</id>
          <name>Local Nexus Repository</name>
          <uniqueVersion>false</uniqueVersion>
          <url>http://ip/nexus/content/repositories/snapshots/</url>
       </snapshotRepository>
    </distributionManagement>
    

    如果步骤3没有生成catalog文件,eclipse中是搜索不到模板的,可以自己创建catalog.xml文件,放到本地仓库的根目录。

    <archetype-catalog
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd">
       <archetypes>
          <archetype>
             <groupId>test</groupId>
             <artifactId>archetype-template-generator-archetypee</artifactId>
             <version>0.0.1-SNAPSHOT</version>
          </archetype>
       </archetypes>
    </archetype-catalog>
    

    IDEA中添加模板

    1)点击File - New - Project - Maven,勾选Create from archetype
    点击Add Archetype,输入我们提供的模板信息,具体如下:

    <dependency>
     <groupId>test</groupId>
     <artifactId>archetype-template-generator-archetypee</artifactId>
     <version>0.0.1-SNAPSHOT</version>
    </dependency>
    

    在这里插入图片描述
    2)使用时,选中archetype-template-generator-archetypee模板,Next即可

    自定义包名

    生成的模板工程默认会使用groupId当做包名,所以如果想自定义包名,有两种途径:

    1)使用命令行生成项目

    mvn archetype:generate
    -DgroupId=com.free
    -DartifactId=工程名称
    -Dversion=版本号
    -Dpackage=包名
    -DarchetypeGroupId=test
    -DarchetypeArtifactId=archetype-template-generator-archetypee
    -DarchetypeVersion=0.0.1-SNAPSHOT
    -DinteractiveMode=false
    

    2)IntelliJ Idea生成工程时没有package的输入框,如果想根据module名拼接包名,可以改造模板工程结构如下:
    在这里插入图片描述
    pacageInPathFormat:默认包名全路径
    rootArtifactId:module名称

    展开全文
  • Maven archetype 自定义项目模板

    千次阅读 2017-03-17 12:04:46
    2. 在一个已有的项目(作为模板的项目)中运行 mvn archetype:create-from-project ,会生成项目模板。 3.提取 生成的 archetype 项目出来,这其实就是一个maven项目。 mvn archetype:create-from-project 先从一个...
    1.安装 maven archetype catalogs 插件

    2. 在一个已有的项目(作为模板的项目)中运行 mvn archetype:create-from-project ,会生成项目模板。

    3.提取 生成的 archetype 项目出来,这其实就是一个maven项目。
    mvn archetype:create-from-project 先从一个已有的项目生成Archetype模板到 target/generated-sources/archetype。 
     这还是需要一些微调,要找准package name和变量,将变量转为符号,将目录结构收缩。
    mvn install 把模板安装到本地仓库,maven install deploy ( PS:即可上传到私服,deploy需要配置上传私服的地址

    4.安装完即可在本地仓库看到生成的模板信息。会在本地仓库生成 archetype-catalog.xm l 文件



    5.添加模板到IDEA。(第一步安装的 maven archetype catalogs 插件作用)

    6.最后新建项目,选择自定义的模板。


    展开全文
  • 最近做springcloud项目,需要用maven项目管理springboot,eclipse自带的maven模板又贼鸡儿蠢,于是就想自己搞个模板。 网上文章很多,这篇写的挺合我心意 —— maven:从一个已有项目生成一个archetype(未完成) ...

    最近做springcloud项目,需要用maven项目管理springboot,eclipse自带的maven模板又贼鸡儿蠢,于是就想自己搞个模板。

    网上文章很多,这篇写的挺合我心意  ——  maven:从一个已有项目生成一个archetype(未完成)

    一.添加maven-archetype-plugin

        在模板maven项目的pom.xml里加入插件maven-archetype-plugin

    <build>
    	<finalName>spring-template</finalName>
    	<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    				<configuration>
    					<fork>true</fork>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-archetype-plugin</artifactId>
    				<version>2.2</version>
    			</plugin>
    	</plugins>
    </build>

    二.mvn archetype:create-from-project

        这个命令如果直接用eclipse——run as执行,会有问题

            

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:create-from-project (default-cli) on project spring-template: ${maven.home} is not specified as a directory: 'E:\eclipse_study_workspace\iot-server\spring-template\EMBEDDED'. -> [Help 1]
    [ERROR] 
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

     原因是eclipse自带的maven有问题,需要用下载的maven包中的mvn.bat命令,如果bin目录下没有mvn.bat,则复制mvn.cmd改成mvn.bat!

     进入cmd界面,cd到项目路径下,输入mvn archetype:create-from-project,执行即可。target目录下会生成generated-sources文件夹。

    三.安装到本地库

      cd 到generated-sources/archetype文件夹下,输入mvn install(将项目保存到本地库中,方便其他项目调用),这样模板就保存到了maven本地库里。

    四.更新本地仓库索引  mvn archetype:update-local-catalog

    五.使用模板

                           

        

    展开全文
  • An archetype is defined asan original pattern or model from which all other things of ...创建archetype模板 手动创建 通过已有的项目结构生成archetype 通过archetype创建新项目 1.通过maven命令的方式 ...

    An archetype is defined as an original pattern or model from which all other things of the same kind are made

    目录

    背景

    创建archetype模板

    手动创建

    通过已有的项目结构生成archetype

    通过archetype创建新项目

    1.通过maven命令的方式

    2.通过IDE方式生成(使用本地install的archetype)


    背景

    开发中,我们通常会使用maven内置的脚手架也就是archetype来快速生成项目结构。但是在开发中,你会发现maven预先提供的archetyp远远不够,每次新建一个项目,我们都需要从现有的项目copy pom.xml,spring的配置文件,一些公共的工具类等,对于多module项目,我们还需要去创建各个module。在这样的背景下,我们就需要使用maven的archetype去定义一个自己想要的代码脚手架以供更快的生成新的项目骨架,可以进行后续开发。

    创建archetype模板

    手动创建

    1.首先创建一个空的maven项目

    2.创建archetype-metadata.xml,位于src/main/resources/META-INF/maven/目录下

    <?xml version="1.0" encoding="UTF-8"?>
    <archetype-descriptor xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" name="ibu-itinerary-archetype"
                          xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
                          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <!--属性变量定义-->
      <requiredProperties>
        <requiredProperty key="package">
          <defaultValue>com.chenpp.archetype</defaultValue>
        </requiredProperty>
      </requiredProperties>
      
      <!--项目子模块定义-->
      <modules>
        <module id="${rootArtifactId}-domain" dir="__rootArtifactId__-domain" name="${rootArtifactId}-domain">
          <fileSets>
            <fileSet filtered="true" packaged="true" encoding="UTF-8">
              <directory>src/main/java</directory>
              <includes>
                <include>**/*.java</include>
              </includes>
            </fileSet>
          </fileSets>
        </module>
        <module id="${rootArtifactId}-dao" dir="__rootArtifactId__-dao" name="${rootArtifactId}-dao">
          <fileSets>
            <fileSet filtered="true" packaged="true" encoding="UTF-8">
              <directory>src/main/java</directory>
              <includes>
                <include>**/*.java</include>
              </includes>
            </fileSet>
          </fileSets>
        </module>
        <module id="${rootArtifactId}-service" dir="__rootArtifactId__-service" name="${rootArtifactId}-service">
          <fileSets>
            <fileSet filtered="true" packaged="true" encoding="UTF-8">
              <directory>src/main/java</directory>
              <includes>
                <include>**/*.java</include>
              </includes>
            </fileSet>
          </fileSets>
        </module>
    
        <module id="${rootArtifactId}-controller" dir="__rootArtifactId__-controller" name="${rootArtifactId}-controller">
          <fileSets>
            <fileSet filtered="true" packaged="true" encoding="UTF-8">
              <directory>src/main/java</directory>
              <includes>
                <include>**/*.java</include>
              </includes>
            </fileSet>
          </fileSets>
        </module>
    
    
      </modules>
    </archetype-descriptor>
    
    • requiredProperty:定义通过archetype生成项目时需要提供的参数,这些属性可以在资源元文件里的任意一个文件里通过${var}来引用,所以的元文件最终都可以选择通过velocity引擎来执行替换后生成。

      默认的属性有:groupId,artifactId,packeage,version等
    • module 定义子模块
      1) id :定义子模块工程的artifactId
      2) dir  :定义子模块源文件在archetype-resources里对应的directory
      3) name :定义子模块的名字
    • fileSet:定义 通过Archetype插件生成的项目里的文件和脚手架jar里的文件的关联关系

      1) packaged="true"标识directory中对应的内容是否要放入到package中,比如package为com.chenpp,那么如果该属性为true,则对应的java文件会放到com/chenpp文件夹下,也就是包路径下。

      2) filtered="true"标识下面提到的${}是否要进行替换

    3.创建对应的子模块下的pom.xml和java文件

    以domain子模块为例

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>${rootArtifactId}</artifactId>
            <groupId>${groupId}</groupId>
            <version>${version}</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>${artifactId}</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
        </dependencies>
    
    
    </project>
    
    package ${package}.entity;
    
    public class User{
    
    
        private String userName;
        private String sex;
    
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }
    

    整个项目的结构如下:

    archetype项目写好之后,通过mvn clean install命令安装到本地的maven仓库中

    通过已有的项目结构生成archetype

    在项目的根目录下(即项目的pom.xml文件所在目录)下执行maven命令:
     mvn archetype:create-from-project

    这样就可以通过当前项目结构创建一个archetype骨架,生成的archetype的信息,默认是在project根目录下的 target\generated-sources\archetype 目录

    然后在archetype的根目录下(即: 项目根目录\target\generated-sources\archetype)执行mvn clean install命令就可以将archetype安装在本地仓库里了。

    通过archetype创建新项目

    1.通过maven命令的方式

    前面的四个参数是生成的新项目的maven groupId以及package,后面三个参数指定使用的脚手架archetype

     mvn archetype:generate -DgroupId=com.chenpp -DartifactId=supermarker-project -Dpackage=com.chenpp.market -Dversion=1.0 -DarchetypeGroupId=com.chenpp  -DarchetypeArtifactId=archetype-project -DarchetypeVersion=1.0 -X -DarchetypeCatalog=local

    archetypeCatalog用来指定maven-archetype-plugin读取archetype-catalog.xml文件的位置:
    internal——maven-archetype-plugin内置的
    local——本地的,位置为~/.m2/archetype-catalog.xml
    remote——指向Maven中央仓库的Catalog

    生成新的项目如下:

    2.通过IDE方式生成(使用本地install的archetype)

    使用本地的archetype jar来生成新项目

    展开全文
  • maven archetype 自定义

    千次阅读 2018-06-06 17:54:06
    archetype是什么 如何创建archetype(简易版,标准版请看后面#更多...archetype是maven的工程原型(模版),也就是说,使用archetype,可以将maven中已存在的工程结构和配置套用到新创建的工程上。 一般用idea创建mav...
  • idea中创建并使用自定义maven模板

    千次阅读 2020-04-18 22:57:13
    1.为什么要进行自定义骨架? 在使用idea进行maven开发项目时,发现每次新建一个maven项目之后,自带的骨架中都缺少目录和配置文件,每次都需要自己建包,修改文件夹状态。(很麻烦) 2.自定义一个骨架 1.前提:我们...
  • maven自定义archetype

    2020-07-16 11:05:00
    Archetype 是一个 Maven 项目模板工具包。原型被定义为原始模式或模型,从中创建所有其他相同类型的东西。这些名称适合我们尝试提供一个系统,该系统提供生成Maven项目的一致方法。Archetype 将帮助作者为用户创建 ...
  • maven 自定义模块

    2018-03-07 17:42:16
    引用地址:https://www.cnblogs.com/chyu/p/5648139.html http://blog.csdn.net/a5518007/article/details/62885432maven archetype可以将一个项目做成项目原型,之后只需要以此原型来...通俗讲就是一个项目模板.ecli...
  • maven自定义archetype Maven 自定义archeType https://www.jianshu.com/p/724a9fa7b37a 步骤 自定义archetype(更快捷的创建基础项目) 1.mvn archetype:create-from-project 2.cd target/generated-sources/...
  • Maven自定义archetype生成多模块结构的基础项目骨架 一:项目骨架介绍 该项目骨架集成了Spring,SpringMVC,MyBatis,jsp,jquery,bootstrap等 二:项目骨架使用介绍 1.首先下载该项目到你的本地工程 2.通过dos...
  • archetype我们可以理解为通过maven创建的项目模板. 1.我们先看看一个普通的项目架构长什么样子: . ├── pom.xml └── src └── main ├── java │ └── cn │ └── com │ ├── HelloWorld...
  • maven简介 Maven 作为一个优秀的项目管理工具,其插件机制为其功能扩展提供了非常大的便捷性。虽然说大多数情况下,我们可能不太会自己去编写 Maven 插件,但不排除在某些特殊的情况下,我们需要去完成一个自己的...
  • Maven自定义archetype生成项目骨架(一)

    万次阅读 热门讨论 2015-07-15 16:40:45
    摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,...总之,原型是一个Maven项目模板工具包。一个原型被定义为从其中相同类型的所有其它事情是由一个原始图案或模型。名称配合,因为我们正在努力
  • maven-archetype的模板渲染采用的是velocity(有点老,个人好多年不用,已不熟悉了),考虑部分内置的java类或配置,需要定制,比如:部分类名称希望采用工程名称作为前缀,但是工程名字(一般是 rootArtifactId )...
  • 自定义maven项目模板-脚手架

    千次阅读 2015-11-02 23:49:52
    许多使用过maven的同学都是拿人家做好的archetype来进行快速开发,自己最近接触到一个新的项目,便自己尝试去做一个archetype项目模板,一来可以让自己多熟悉了解maven,二来也方便日后使用。 大概看了一下maven的...
  • Maven自定义archetype生成项目骨架

    千次阅读 2018-06-28 08:59:13
    摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin ,通过该插件可以自定义符...
  • 介绍 脚手架即项目模板,使用脚手架的优点:统一...自定义脚手架 1、首先创建好自己的项目接口,包括依赖文件等 2、pom.xml添加插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <
  • Maven 自定义插件实战

    2020-09-24 16:46:10
    使用 IDEA,创建一个org.apache.maven.archetypes:maven-archetype-mojo模版项目,项目名叫demo-maven-plugin。注意,maven 插件的命名有讲究的,官方插件命名格式是maven-pluginName-plugin,非官方插件的命名格式...
  • maven执行创建模板命令,报错:Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin ${maven.home} is not specified as a directory EMBEDDED
  • maven自定义插件开发

    千次阅读 2017-11-28 10:47:56
    Maven 作为一个优秀的项目管理工具,其插件机制为其功能扩展提供了非常大的便捷性。虽然说大多数情况下,我们可能不太会自己去编写 Maven 插件,但不排除在某些特殊的情况下,我们需要去完成一个自己的插件,来协助...
  • Maven创建自定义骨架

    2021-04-27 11:39:09
    创建一个Maven项目,这里创建一个普通的Maven空项目就行,但是要生成模板的话,可以直接拿一个现有的项目导入… 确定编码集Idea->File->Settings->Editor->File Encodings 三个都改成UTF-8 配置本地...
  • maven自定义骨架

    2020-08-06 09:43:49
    一、首先得创建一个maven项目,以这个项目为模板。 二、在模板的pom文件中引入插件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</...
  • maven-自定义插件骨架

    2020-08-20 22:55:24
    安装maven软件 1.下载apache-maven-3.1.0 2.安装apache-maven-3.1.0 3.配置环境变量 4.验证maven,CMD输入mvn -v,验证正确性 二.搭建项目骨架 1.运行dos命令mvn archetype:generate,随后按提示输入后,创建 2.运行...
  • idea 添加自定义maven 模板

    千次阅读 2019-07-17 16:42:15
    在使用idea进行maven开发项目时, 发现每次新建一个maven项目之后, 自带的骨架中都缺少目录和配置文件. 每次都需要自己建包 , 修改文件夹状态.(很麻烦) 2.自定义一个骨架. 1.前提: 我们要新建一个maven项目 ,...
  • maven里面可以用archetype:create-from-project生成项目骨架,但是包名往往有点问题。 create-from-project命令会去寻找一个包含所有文件的目录路径作为基础包。 比如如下的项目骨架: Java代码 src/main/java/ .....
  • Maven自定义archetype生成项目骨架

    千次阅读 2018-03-07 11:06:37
    使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin,通过该插件可以自定义符合我们自己需求的archetype。一:什么是Archetype总之,原型是一个...
  • maven 自定义模板

    2018-04-05 21:29:00
    mvn archetype:create-from-project mvn clean install 发布到本地库 转载于:https://www.cnblogs.com/weaponking/p/8724334.html
  • Maven 自定义骨架

    2020-03-18 16:01:40
    程序员根据自己的需求,定义Maven Archetype(骨架),后续选择自定义的骨架,就可以把我们需要的pom,其他配置文件,代码的骨架,自动生成,简化开发与测试。 二、如何自定义骨架 下面我们自定义一个MapReduce骨架作为...
  • 自定义Maven打包插件

    2020-12-21 23:28:00
    比如它的打包插件maven-assembly-plugin可以根据模板配置自己想要的打包内容,但当它的模板配置无法满足自己定制化打包需求时,此时就需要我们将maven研究的更深入些,利用自定义maven插件去实现我们自己的打包逻辑...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,499
精华内容 9,799
关键字:

maven模版自定义