使用Maven构建JavaWeb项目(文字版)
使用Maven构建JavaWeb项目(文字版)
创建Jave Project
1、创建项目
使用 mvn archetype:generate 命令,如下所示:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
参数解释:
(待补充)
如果长时间没有创建好,可参考以下方法:
使用"mvn archetype:generate"命令创建项目时要特别长的时间才能够将项目创建好
原因是创建项目过程中会下载这个文件,而访问网络上这个文件非常耗时http://repo1.maven.org/maven2/archetype-catalog.xml
问题解决办法
1.直接下载archetype-catalog.xml文件,放到本地的apache-maven目录中。
2.在使用mvn archetype:generate命令时,加上-DarchetypeCatalog=local,以替换网络上的catalog.xml。具体参考:http://9leg.com/maven/2015/02/01/why-is-mvn-archetype-generate-so-low.html
BUILD SUCCESS
就表示项目构建成功,当在前用户目录下(如C:\Users\Administrator)下构建了一个Java-web Project叫做my-WebApp。
2、添加目录
my-WebApp中目前只有src/main/resources目录和一个pom.xml文件,
因此还需要手动在src/main 目录下创建一个 java目录,在src目录下创建一个test目录,并在其中创建java和resources目录。
接着我们就可以将创建好的JavaWeb导入Eclipse中进行开发了。
2、手动创建resources目录
但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动在main目录和test目录分别创建resources目录(用于存放测试时用到的配置文件)。
然后我们就可以将创建好的myapp项目导入到Eclipse中进行开发了。
3、pom.xml文件说明
通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。
pom.xml文件的节点元素说明:
<project>
pom文件的顶级节点
<modelVersion>
object model版本,对Maven2和Maven3来说,只能是4.0.0
<groupId>
项目创建组织的标识符,一般是域名的倒写
<artifactId>
定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<version>
当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
<packaging>
打包的方式,有jar、war、ear等
<name>
项目的名称
<url>
项目的地址
<properties>
属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies>
构建项目依赖的jar
其中由groupId、artifactId和version唯一的确定了一个项目坐标
使用Maven打包发布Web项目
Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。
在命令行切换到my-WebApp目录,执行:`使用Maven打包发布Web项目
Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。
在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了,构建成功后,my-WebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。
提示:
将 my-WebApp.war 复制到tomcat安装目录下的webapps目录下,
然后在tomcat安装目录的bin目录下,Shift+鼠标右键 进入PowerShell,输入.\startup.bat
启动tomcat
最好浏览器访问:http://localhost:8080/my-WebApp/
除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-WebApp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myWebApp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>myWebApp</finalName>
<pluginManagement>
<!--配置Jetty-->
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run
启动Jetty服务器。
Jetty服务器启动成功,使用的是8080端口。
Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
Maven创建项目的命令说明
mvn archetype:generate
固定写法
-DgroupId
组织标识(包名)
-DartifactId
项目名称
-DarchetypeArtifactId
指定ArchetypeId
maven-archetype-quickstart
创建一个Java Project
maven-archetype-webapp
创建一个Web Project
-DinteractiveMode
是否使用交互模式
archetype是mvn内置的一个插件,generate任务可以创建一个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。
不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。