创建父工程
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc -DartifactId=alan-springmvc
中间出现选择什么的,直接回车即可。 创建完成后修改pom.xml中packaging内容为pom。
使用mvn archetype:generate命令和mvn archetype:create都可以创建项目,目前没有发现这两者的区别,唯一区别的地方就是发现使用mvn archetype:generate命令创建项目时要特别长的时间才能够将项目创建好,而使用mvn archetype:create命令则可以很快将项目创建出来。
创建子工程
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.dao -DartifactId=alan-springmvc-dao -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.service -DartifactId=alan-springmvc-service -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.alan.springmvc.web -DartifactId=alan-springmvc-web -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
创建完成后删除子工程pom.xml中groupId和version两行,这样可以直接继承父类的。
将项目编译为eclipse项目
mvn eclipse:eclipse -Dwtpversion=1.0
将项目导入eclipse
修改依赖关系:service依赖dao,web依赖service
com.alan.springmvcalan-springmvc-dao${project.version}
修改web的pom.xml
com.alan.springmvcalan-springmvc-service${project.version}
JavaProject的pom.xml文件说明
pom意思就是project object model。
pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。
pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml
pom.xml文件的内容如下:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.mycompany.app
myapp
1.0-SNAPSHOT
jar
myapp
http://maven.apache.org
UTF-8
junit
junit
3.8.1
test
pom.xml文件的节点元素说明:
pom文件的顶级节点
object model版本,对Maven2和Maven3来说,只能是4.0.0
项目创建组织的标识符,一般是域名的倒写
定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
打包的方式,有jar、war、ear等
项目的名称
项目的地址
属性配置,比如:UTF-8
构建项目依赖的jar
其中由groupId、artifactId和version唯一的确定了一个项目坐标
运行
除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.mycompany.app
myWebApp
war
1.0-SNAPSHOT
myWebApp Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
myWebApp
org.mortbay.jetty
maven-jetty-plugin
打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器,如下图所示:
Maven创建项目的命令说明
mvn archetype:create或者mvn archetype:generate 固定写法
-DgroupId 组织标识(包名)
-DartifactId 项目名称
-DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,创建一个Java Project;maven-archetype-webapp,创建一个Web Project
-DinteractiveMode 是否使用交互模式
archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:
maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp
每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。maven-archetype-quickstart骨架是用来创建一个Java Project,而maven-archetype-webapp骨架则是用来创建一个JavaWeb Project。