archetype:翻译成原型,其实就是我们所谓的脚手架。
maven已经给我们提供了很多archetype,但很多时候我们还需要自己手工去做属于自己的个性化archetype。
1、做一个maven工程(model-project)(包括了工具类,配置文件,等),我们的目标是通过自定义的archetype可以生成这个工程的样子。
2、右键工程model-project run as 运行命令:archetype:create-from-project,该命令会生成/target/generated-sources/archetype代码。
3、新建一个普通java工程template,右键configure--->conver to maven 填写上maven坐标,删除src目录,备份pom.xml。
4、把第2步生成的/target/generated-sources/archetype下面的代码都copy到template工程中,覆盖原有代码,修改pom.xml中的坐标为备份中的坐标,同时必面把version中的SNAPSHOT去掉,保证不是快照才能在后面看到该archetype。
5、install template工程。
6、这里新建工程时,在default local 中就能选中刚才我们自己定义的archetype了。
注意:有时需要修改/src/main/resources/META-INF/maven/archetype-metadata.xml该文件
filtered:是否过滤,比如用用户输入的坐标,包名来替换类中的包名,坐标。
packaged:是否按包输出,比如src/main/java会级联生成三个目录。
文件一般结构为:
<?xml version="1.0" encoding="UTF-8"?> <archetype-descriptor xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd" name="hello-api" xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <fileSets> <fileSet filtered="true" packaged="true" encoding="UTF-8"> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" packaged="flase" encoding="UTF-8"> <directory>src/main/php</directory> <includes> <include>**/*.*</include> </includes> </fileSet> </fileSets> </archetype-descriptor>
很容易看明白,但有一种特殊情况是parent工程结构如下:
<modules> <module dir="api" name="service-api"> <fileSets> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/test/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/main/php</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/main/csharp</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/main/html</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/test/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> </fileSets> </module> <module dir="service" name="service-service"> <fileSets> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>META-INF/service-conf</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/main/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="true"> <directory>src/test/java</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/main/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8" packaged="false"> <directory>src/test/resources</directory> <includes> <include>**/*.*</include> </includes> </fileSet> </fileSets> </module> </modules>
相关推荐
描述:通过maven的自定义archetype创建自定义的项目框架 1.下载项目到你的本地workspace 2.进入到你该项目的根目录(也就是pom.xml所在的目录) 3.执行命令把该项目安装到你的本地仓库 mvn clean install 4.执行命令...
#micaicms-web-modules-archetypeMaven之自定义archetype生成多模块结构的基础项目骨架一:项目骨架介绍该项目骨架集成了Spring,SpringMVC,MyBatis,jsp,jquery,bootstrap等二:项目骨架使用介绍1.首先下载该...
Eclipse Maven 创建Web 项目报错 Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
Eclipse Maven 创建Web 项目报错 Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap 之前找了很久才找到了,传上来更大家共享下,希望对大家有帮助,欢迎下载或者永久保存。
maven通过archetype插件构建项目骨架时会远程访问页面。archetype-catalog.xml即为远程访问的信息,添加到本地可以解决此问题。 http://repo1.maven.org/maven2/archetype-catalog.xml 中内容。
Eclipse archetype-catalog.xml.zip
资源是我从其他地方整理的,欢迎大家来下载,资源还不错。 Eclipse Maven 创建Web 项目报错 Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
在eclipse中创建maven项目时,需要选择archetypes,包括常用的maven-archetype-webapp和maven-archetype-quickstart 的jar包
下载到本地的catalog配置文件,加载到eclipse会速度更快!!!解决使用Eclipse自带的Maven插件创建Web项目时报错