用户工具

站点工具


分享:技术:maven:archetype的制作和使用

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
分享:技术:maven:archetype的制作和使用 [2015/07/07 13:00]
gxx 创建
分享:技术:maven:archetype的制作和使用 [2017/05/30 08:53] (当前版本)
gxx
行 3: 行 3:
 每开始一个maven项目,必做的就是配置一堆的配置文件,和pom.xml里一堆的依赖插件版本号,写一堆的controller,serivce,dao,vo,mapper等重复性的动作。为了不重复做这些事情,所以考虑做一个[[分享:​技术:​示例项目:​springmvc_mybatis_spring_freemarker_maven|springmvc+mybatis+spring+freemarker+maven示例项目]],根据这个示例项目制作模板或者成为原型。在maven中我们使用archetype,意思解释为原型。 每开始一个maven项目,必做的就是配置一堆的配置文件,和pom.xml里一堆的依赖插件版本号,写一堆的controller,serivce,dao,vo,mapper等重复性的动作。为了不重复做这些事情,所以考虑做一个[[分享:​技术:​示例项目:​springmvc_mybatis_spring_freemarker_maven|springmvc+mybatis+spring+freemarker+maven示例项目]],根据这个示例项目制作模板或者成为原型。在maven中我们使用archetype,意思解释为原型。
 ===== archetype的制作 ===== ===== archetype的制作 =====
 +这里注意一点,被制作archetype的maven项目pom.xml必须引入maven-archetype-plugin插件 
 +<code xml> 
 +<​plugins>​ 
 + <!-- 原型插件 --> 
 + <​plugin>​ 
 + <​groupId>​org.apache.maven.plugins</​groupId>​ 
 + <​artifactId>​maven-archetype-plugin</​artifactId>​ 
 + <​version>​2.2</​version>​ 
 + </​plugin>​ 
 +</​plugins>​ 
 +</​code>​ 
 +在做完[[分享:​技术:​示例项目:​springmvc_mybatis_spring_freemarker_maven|springmvc+mybatis+spring+freemarker+maven示例项目]]后,根究以下步骤来制作archetype 
 +  cd D:​\05.HeadWorkspace\record\ #​进入项目目录,dir可以看到pom.xml 
 +  mvn archetype:​create-from-project #​执行脚本 
 +  ##############################################​输出内容 
 +  [INFO] Archetype created in D:​\05.HeadWorkspace\record\target\generated-sources\ 
 +  archetype 
 +  [INFO] ------------------------------------------------------------------------ 
 +  [INFO] BUILD SUCCESS 
 +  [INFO] ------------------------------------------------------------------------ 
 +  [INFO] Total time: 4.256s 
 +  [INFO] Finished at: Mon Jul 06 16:47:42 CST 2015 
 +  [INFO] Final Memory: 6M/10M 
 +  [INFO] ------------------------------------------------------------------------ 
 +  ##############################################​ 
 +  cd D:​\05.HeadWorkspace\record\target\generated-sources\archetype #​进入archetype目录 
 +  mvn install #​如果只要生成archetype放到本地maven仓库.m2中,执行该脚本即可 
 +  #​如果要生成archetype放到本地仓库.m2中同时发布到nexus私有仓库中供以后使用,需要修改archetype目录下的pom.xml,加入以下代码 
 +  ##############################################​ 
 +  <!-- 版本发布管理 --> 
 +  <​distributionManagement>​ 
 +  <!-- release稳定版本 --> 
 +  <​repository>​ 
 +  <​id>​nexus-releases</​id>​ 
 +  <​name>​Nexus Release Repository</​name>​ 
 +  <​url>​http://​121.43.104.34:​8081/​nexus/​content/​repositories/​releases/</​url>​ 
 +  </​repository>​ 
 +  <!-- snapshots快照版本 --> 
 +  <​snapshotRepository>​ 
 +  <​id>​nexus-snapshots</​id>​ 
 +  <​name>​Nexus Snapshot Repository</​name>​ 
 +  <​url>​http://​121.43.104.34:​8081/​nexus/​content/​repositories/​snapshots/</​url>​ 
 +  </​snapshotRepository>​ 
 +  </​distributionManagement>​ 
 +  ##############################################​ 
 +  #​由于nexus发布需要校验用户名和密码,所以mvn deploy要发布成功,必须在maven的目录中修改apache-maven-3.0/​conf/​settings.xml,注意server标签中的id与repository标签中的id要一致,用户名密码即nexus中用户名密码 
 +  ##############################################​ 
 +  <​servers>​ 
 +  <​server> ​  
 +  <​id>​nexus-releases</​id>​ 
 +  <​username>​admin</​username> ​  
 +  <​password>​admin123</​password> ​  
 +  </​server> ​  
 +  <​server> ​  
 +  <​id>​nexus-snapshots</​id>​ 
 +  <​username>​admin</​username> ​  
 +  <​password>​admin123</​password> ​  
 +  </​server> ​  
 +  </​servers>​ 
 +  ##############################################​ 
 +  mvn deploy #​要生成archetype放到本地仓库.m2中同时发布到nexus私有仓库中供以后使用 
 +上nexus私有仓库查看刚生成的record-archetype 
 +{{ :​分享:​技术:​maven:​archetype截图1.png?​300 |}}
 ===== archetype的使用 ===== ===== archetype的使用 =====
 +archetype的使用指的是,根据制作好的archetype来生成项目,分两种情况:
 +  - 刚制作完archetype的机器环境中,.m2文件夹下会有一个archetype-catalog.xml文件,里面会有record-archetype,使用eclipse可以搜索到该原型,可以直接创建项目
 +  - 没有制作过archetype的机器环境中,.m2文件夹下没有archetype-catalog.xml文件,或者该文件中没有record-archetype,需要拷贝以下archetype-catalog.xml文件到.m2文件夹下或者把record-archetype的部分加到该文件中
 +<code xml archetype-catalog.xml>​
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​archetype-catalog 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"​
 +    xmlns="​http://​maven.apache.org/​plugins/​maven-archetype-plugin/​archetype-catalog/​1.0.0"​
 +    xmlns:​xsi="​http://​www.w3.org/​2001/​XMLSchema-instance">​
 +  <​archetypes>​
 +    <​archetype>​
 +      <​groupId>​com.gxx</​groupId>​
 +      <​artifactId>​record-archetype</​artifactId>​
 +      <​version>​0.0.1</​version>​
 +      <​description>​record-archetype</​description>​
 +      <​repository>​http://​121.43.104.34:​8081/​nexus/​content/​repositories/​releases/</​repository>​
 +    </​archetype>​
 +  </​archetypes>​
 +</​archetype-catalog>​
 +</​code>​
 +接下来演示在eclipse中通过record-archetype创建项目
 +{{ :​分享:​技术:​maven:​archetype截图2.png?​300 |}}
 +{{ :​分享:​技术:​maven:​archetype截图3.png?​300 |}}
 +{{ :​分享:​技术:​maven:​archetype截图4.png?​300 |}}
 +{{ :​分享:​技术:​maven:​archetype截图5.png?​300 |}}
 +生成项目代码如下:
 +{{ :​分享:​技术:​maven:​archetype截图6.png?​300 |}}
 +全局搜索gxx修改成相应的域名,全局搜索record修改成相应的项目名,修改jdbc.properties数据库连接,根据以下脚本创建库表
 +<code sql database.sql>​
 +CREATE DATABASE mom;
 +USE mom;
 +CREATE TABLE `user` (
 +  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '​主键',​
 +  `name` VARCHAR(50) NOT NULL COMMENT '​姓名',​
 +  `password` VARCHAR(32) NOT NULL COMMENT '​密码',​
 +  `create_date` VARCHAR(8) NOT NULL COMMENT '​创建日期',​
 +  `create_time` VARCHAR(6) NOT NULL COMMENT '​创建时间',​
 +  PRIMARY KEY  (`id`)
 +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='​用户表'​
 +</​code>​
 +build项目,部署项目到tomcat,启动项目,按以下方法测试:
 +  - 访问http://​localhost/​mom/​输出Hello World!
 +  - 访问http://​localhost/​mom/​user/​preRegistFtl.htm输入姓名和密码,第一次查看库表创建记录成功页面提示成功,第二次提示该用户名已存在
 +  - 访问http://​localhost/​mom/​user/​preRegistJsp.htm输入姓名和密码,第一次查看库表创建记录成功页面提示成功,第二次提示该用户名已存在
分享/技术/maven/archetype的制作和使用.1436245242.txt.gz · 最后更改: 2015/07/07 13:00 由 gxx