Maven新建打包等管理Eclipse标准动态Web工程

Maven离不开POM文件(工程对象模型,XML文件)。用Maven生成Eclipse JAVA工程是非常方便的,在生成完成后几乎不需要做任何自定义的工作(除了增加依赖)。而生成Eclipse标准动态JavaWeb工程就不那么顺利了,需要手动改几个地方,不过这个修改是一劳永逸的(附件中提供了一个修改好的POM项目,下载后,敲几个命令就可以搞定了)。

1、生成一个Web工程,这个工程不是一个Eclipse标准的动态Web工程。

Xml代码
  1. mvn archetype:create -DgroupId=com.aboy.webmap -DartifactId=webmap -DarchetypeArtifactId=maven-archetype-webapp  
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>前增中以下内容

Xml代码
  1. <build>  
  2.     <finalName>ROOT</finalName>  
  3.     <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>  
  4.     <defaultGoal>install</defaultGoal>     
  5.     <plugins>  
  6.         <plugin>  
  7.             <artifactId>maven-compiler-plugin</artifactId>  
  8.             <version>2.0.2</version>  
  9.             <configuration>  
  10.                 <source>1.5</source>  
  11.                 <target>1.5</target>  
  12.                 <encoding>GBK</encoding>  
  13.              </configuration>  
  14.         </plugin>  
  15.         <plugin>  
  16.             <artifactId>maven-resources-plugin</artifactId>  
  17.             <configuration>  
  18.                 <encoding>GBK</encoding>  
  19.             </configuration>  
  20.         </plugin>  
  21.         <plugin>  
  22.             <artifactId>maven-war-plugin</artifactId>  
  23.             <configuration>  
  24.                 <webappDirectory>WebRoot</webappDirectory>  
  25.                 <warSourceDirectory>WebRoot</warSourceDirectory>  
  26.             </configuration>  
  27.         </plugin>  
  28.     </plugins>  
  29.   </build>  
<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文件和源目录下的文件存放的地方,这个是最关键的。

其它的内容就没有什么可说明的了,看看就知道了,整个文件如下如示:

Xml代码
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   <groupId>com.aboy.webmap</groupId>  
  5.   <artifactId>webmap</artifactId>  
  6.   <packaging>war</packaging>  
  7.   <version>1.0-SNAPSHOT</version>  
  8.   <name>webmap Maven Webapp</name>  
  9.   <url>http://obullxl.iteye.com</url>  
  10.      
  11.   <dependencies>  
  12.     <!-- logging -->  
  13.     <dependency>  
  14.         <groupId>log4j</groupId>  
  15.         <artifactId>log4j</artifactId>  
  16.         <version>1.2.13</version>  
  17.     </dependency>  
  18.        
  19.     <!-- test -->  
  20.     <dependency>  
  21.       <groupId>junit</groupId>  
  22.       <artifactId>junit</artifactId>  
  23.       <version>3.8.1</version>  
  24.       <scope>test</scope>  
  25.     </dependency>  
  26.   </dependencies>  
  27.      
  28.   <build>  
  29.     <finalName>ROOT</finalName>  
  30.     <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>  
  31.     <defaultGoal>install</defaultGoal>  
  32.     <plugins>  
  33.         <plugin>  
  34.             <artifactId>maven-compiler-plugin</artifactId>  
  35.             <version>2.0.2</version>  
  36.             <configuration>  
  37.                 <source>1.5</source>  
  38.                 <target>1.5</target>  
  39.                 <encoding>GBK</encoding>  
  40.              </configuration>  
  41.         </plugin>  
  42.         <plugin>  
  43.             <artifactId>maven-resources-plugin</artifactId>  
  44.             <configuration>  
  45.                 <encoding>GBK</encoding>  
  46.             </configuration>  
  47.         </plugin>  
  48.         <plugin>  
  49.             <artifactId>maven-war-plugin</artifactId>  
  50.             <configuration>  
  51.                 <webappDirectory>WebRoot</webappDirectory>  
  52.                 <warSourceDirectory>WebRoot</warSourceDirectory>  
  53.             </configuration>  
  54.         </plugin>  
  55.     </plugins>  
  56.   </build>  
  57. </project>  
<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帮我们搞定。

Xml代码
  1. mvn eclipse:myeclipse  
mvn eclipse:myeclipse

6、一些常用的命令

Xml代码
  1. mvn archetype:create -DgroupId=com.aboy.webmap -DartifactId=webmap -DarchetypeArtifactId=maven-archetype-webapp   
  2.   
  3. mvn clean:删除target目录下所有生成的war,jar   
  4. mvn install:生成war,jar包   
  5.   
  6. mvn eclipse:eclipse:增加eclipse属性(.project, .classpath文件)   
  7. mvn eclipse:myeclipse:增加eclipse属性(增加web属性)mvn eclipse:clean:去掉eclipse属性   
  8.   
  9. mvn eclipse:eclipse -DdownloadJavaDocs=true:在下载依赖包时,也下载其JavaDocs文件   
  10.   
  11. mvn test:运行应用程序中的单元测试   
  12. mvn package:依据项目生成jar文件   
  13. mvn install:将项目的jar文件添加到本地的Maven库中   
  14. mvn site:生成项目相关信息的网站   
  15. mvn clean:清除目标目录中的生成结果   
  16. mvn eclipse:eclipse:生成Eclipse项目文件  

猜你喜欢

转载自sd1992585.iteye.com/blog/762140