每开始一个maven项目,必做的就是配置一堆的配置文件,和pom.xml里一堆的依赖插件版本号,写一堆的controller,serivce,dao,vo,mapper等重复性的动作。为了不重复做这些事情,所以考虑做一个springmvc+mybatis+spring+freemarker+maven示例项目,根据这个示例项目制作模板或者成为原型。在maven中我们使用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私有仓库中供以后使用
archetype的使用指的是,根据制作好的archetype来生成项目,分两种情况:
<?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数据库连接,根据以下脚本创建库表
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,启动项目,按以下方法测试: