用户工具

站点工具


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

archetype的制作和使用

先谈谈背景

每开始一个maven项目,必做的就是配置一堆的配置文件,和pom.xml里一堆的依赖插件版本号,写一堆的controller,serivce,dao,vo,mapper等重复性的动作。为了不重复做这些事情,所以考虑做一个springmvc+mybatis+spring+freemarker+maven示例项目,根据这个示例项目制作模板或者成为原型。在maven中我们使用archetype,意思解释为原型。

archetype的制作

这里注意一点,被制作archetype的maven项目pom.xml必须引入maven-archetype-plugin插件

<plugins>
	<!-- 原型插件 -->
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-archetype-plugin</artifactId>
		<version>2.2</version>
	</plugin>
</plugins>

在做完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

archetype的使用

archetype的使用指的是,根据制作好的archetype来生成项目,分两种情况:

  1. 刚制作完archetype的机器环境中,.m2文件夹下会有一个archetype-catalog.xml文件,里面会有record-archetype,使用eclipse可以搜索到该原型,可以直接创建项目
  2. 没有制作过archetype的机器环境中,.m2文件夹下没有archetype-catalog.xml文件,或者该文件中没有record-archetype,需要拷贝以下archetype-catalog.xml文件到.m2文件夹下或者把record-archetype的部分加到该文件中
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>

接下来演示在eclipse中通过record-archetype创建项目 生成项目代码如下: 全局搜索gxx修改成相应的域名,全局搜索record修改成相应的项目名,修改jdbc.properties数据库连接,根据以下脚本创建库表

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='用户表'

build项目,部署项目到tomcat,启动项目,按以下方法测试:

  1. 访问http://localhost/mom/输出Hello World!
  2. 访问http://localhost/mom/user/preRegistFtl.htm输入姓名和密码,第一次查看库表创建记录成功页面提示成功,第二次提示该用户名已存在
  3. 访问http://localhost/mom/user/preRegistJsp.htm输入姓名和密码,第一次查看库表创建记录成功页面提示成功,第二次提示该用户名已存在
分享/技术/maven/archetype的制作和使用.txt · 最后更改: 2017/05/30 08:53 由 gxx