生成一个Web工程,这个工程不是一个Eclipse标准的动态Web工程。
mvn archetype:create -DgroupId=com.aboy.webmap -DartifactId=webmap -DarchetypeArtifactId=maven-archetype-webapp
上面的命令中,有两个是自定义的:
-DgroupId=com.aboy.webmap:生成pom的<groupId>com.aboy.webmap</groupId>节点,主要是本工程生成的JAR包提给于其它工程依赖时,要用的。对于一个独立的工程,这个可以是随便一个字符串就行了,不过还是推荐使用用意义的字串,因为后面的文章将会介绍多个模块的应用时,就有用了。这个设置可以在生成后修改。
-DartifactId=webmap:将会生成的文件夹名,也是Eclipse中Web工程的名字。这个设置也可以在生成后修改。
2、这条命令执行完后,将会在当前目录下生成一个“webmap”文件夹,这就是一个POM工程了。
该文件夹下有一个“pom.xml”文件和一个“src"目录。
pom.xml文件将是修改的重点。
3、建立相关目录
删除src/main中的webapp目录,而增加java目录;
在src/下增加test目录,与main目录平行;
在src/test目录下增加java和resources目录。
至此,src目录结构为:
src
| --main
| | --java
| | --resources
| --test
| | --java
| | --resources
增加一个WebRoot目录,与src同级,这个目录是干什么的、以及里面的目录结构,我相信就不要说明了。
4、修改pom.xml文件
在</porject>前增中以下内容
<build> <finalName>ROOT</finalName> <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory> <defaultGoal>install</defaultGoal> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.5</source> <target>1.5</target> <encoding>GBK</encoding> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>GBK</encoding> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webappDirectory>WebRoot</webappDirectory> <warSourceDirectory>WebRoot</warSourceDirectory> </configuration> </plugin> </plugins> </build>
build里的内容也是可以自行修改的,以下几个特别说明下:
<finalName>ROOT</finalName>:发布前执行时,生成ROOT.war文件。
<outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>:编译后的.class文件和源目录下的文件存放的地方,这个是最关键的。
其它的内容就没有什么可说明的了,看看就知道了,整个文件如下如示:
<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.aboy.webmap</groupId> <artifactId>webmap</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>webmap Maven Webapp</name> <url>http://obullxl.iteye.com</url> <dependencies> <!-- logging --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.13</version> </dependency> <!-- test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>ROOT</finalName> <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory> <defaultGoal>install</defaultGoal> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.5</source> <target>1.5</target> <encoding>GBK</encoding> </configuration> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>GBK</encoding> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webappDirectory>WebRoot</webappDirectory> <warSourceDirectory>WebRoot</warSourceDirectory> </configuration> </plugin> </plugins> </build> </project>
5、生成eclipse工程
pom.xml文件搞定了,剩下的工作就是敲敲命令了,其它的事情让Maven帮我们搞定。
mvn eclipse:myeclipse
6、一些常用的命令
使maven2在下载依赖包的同时下载其源代码包的方法:
1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。
2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。
参看maven官方网站
http://maven.apache.org/guides/getting-started/index.html
这个地方有archetypeAritfactId的不用参数代表的不同project类型的解释
http://maven.apache.org/archetype/maven-archetype-bundles/
maven-archetype-archetype | An archetype which contains a sample archetype. |
maven-archetype-j2ee-simple | An archetype which contains a simplifed sample J2EE application. |
maven-archetype-mojo (deprecated) | Deprecated in favour of maven-archetype-plugin, which has a better name. |
maven-archetype-plugin | An archetype which contains a sample Maven plugin. |
maven-archetype-plugin-site | An archetype which contains a sample Maven plugin site. |
maven-archetype-portlet | An archetype which contains a sample JSR-268 Portlet. |
maven-archetype-quickstart | An archetype which contains a sample Maven project. |
maven-archetype-simple | An archetype which contains a simple Maven project. |
maven-archetype-site | An archetype which contains a sample Maven site which demonstrates some of the supported document types like APT, XDoc, and FML and demonstrates how to i18n your site. |
maven-archetype-site-simple | An archetype which contains a sample Maven site. |
maven-archetype-webapp | An archetype which contains a sample Maven Webapp project. |