现在的位置: 首页 > 综合 > 正文

四步让 Maven为您工作起来

2013年03月22日 ⁄ 综合 ⁄ 共 7650字 ⁄ 字号 评论关闭

转载于:http://www.linuxidc.com/Linux/2011-10/45422p2.htm

 

 

maven 让您的构建不是一般的爽,下面就看看怎么样让maven工作起来。

 

第一步,做好安装maven前的准备工作,首先安装JDK5或者jdk6.这一步比较简单,学java的同学应该都会,不罗嗦了,检验JDK是否安装好,可以输入如下命令后回车(windows系统)

 

 

 

第二步,下载maven并进行安装,maven下载地址http://maven.apache.org/download.html ,本文下载的是apache-maven-2.2.0-bin.zip 。下载后解压至当前目录,我的解压地址D:/apache-maven-2.2.0-bin。

设置两个比较重要的环境变量。

 

 
1.M2_HOME= D:/apache-maven-2.2.0-bin/apache-maven-2.2.0 
2. 
3.PATH=%PATH%;%M2_HOME%/bin 
 

 

验证你的安装是否正确,则在cmd 下输入 mvn –v .如果出现Maven的版本信息,则表示安装成功,否则,仔细检查你的环境变量设置是否正确。

 

安装后maven的目录结构如下:

 

 

bin目录包含了运行Maven的mvn脚本。 boot目录包含了一个负责创建Maven运行所需要的类装载器的JAR文件。 conf目录包含了一个全局的settings.xml文件,该文件用来自定义你机器上Maven的一些行为。如果需要自定义Maven,更通常的做法是覆写 %home%/.m2目录下的settings.xml文件,每个用户都有对应的这个目录。lib目录有了一个包含Maven核心的JAR文件。 另外,默认情况下,maven会将本地仓库存贮在%home%/.m2/repository/下,当你从远程Maven仓库下载依赖的时候,Maven在你本地仓库存储了这个依赖的一个副本,如果你要改变这个位置,那么你得修改settings.xml文件。例如将路径修改到D盘
,则修改节点 <localRepository>d:/repository</localRepository>,设置后别忘了设置环境变量 M2_REPO= d:/repository .

 

第三步、创建一个简单web 项目玩玩。

     Cmd 下,键入命令 

 
1.mvn archetype:create -DgroupId=com.taobao.maven -DartifactId=maven-webapp -DpackageName=com.taobao.maven.web -DarchetypeArtifactId=maven-archetype-webapp  

 

执行命令后显示信息如下:

 
1.[INFO] Scanning for projects... 
2. 
3.[INFO] Searching repository for plugin with prefix: 'archetype'. 
2. 
3.[INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for updates from central 

2. 
3.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.po  

2. 
3.  
4. 
5.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-4/maven-archetype-2.0-alpha-4.pom  

2. 
3.  
4. 
5.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.ja  

2. 
3.  
4. 
5.[INFO] ------------------------------------------------------------------------ 

6. 
7.[INFO] Building Maven Default Project 
8. 
9.[INFO]    task-segment: [archetype:create] (aggregator-style) 
10. 
11.[INFO] ------------------------------------------------------------------------ 

12. 
13.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.pom  
14. 
15.  
16. 
17.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file/1.0-alpha-6/wagon-file-1.0-alpha-6.pom  
18. 
19.  
20. 
21.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-providers/1.0-alpha-6/wagon-providers-1.0-alpha-6.pom  
22. 
23.  
24. 
25.Downloading:
http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.pom  
26. 
27.  
28. 
29.Downloading:
http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom   30. 

31.  
32. 
33.Downloading:
http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.pom  
34. 
35.  
36. 
37.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.pom  
38. 
39.  
40. 
41.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.jar  
42. 
43.Downloading:
http://repo1.maven.org/maven2/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar  
44. 
45.Downloading:
http://repo1.maven.org/maven2/net/sourceforge/jchardet/jchardet/1.0/jchardet-1.0.jar  
46. 
47.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker/2.0.6/maven-invoker-2.0.6.jar  
48. 
49.Downloading:
http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar   50. 

51.[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.  52. 

53.[INFO] Setting property: velocimacro.messages.on => 'false'.  54. 
55.[INFO] Setting property: resource.loader => 'classpath'.  56. 
57.[INFO] Setting property: resource.manager.logwhenfound => 'false'.  58. 
59.[INFO] [archetype:create {execution: default-cli}]  60. 
61.[WARNING] This goal is deprecated. Please use mvn archetype:generate instead  62. 

63.[INFO] artifact org.apache.maven.archetypes:maven-archetype-webapp: checking for updates from central  64. 

65.Downloading:
http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar  
66. 
67.  
68. 
69.[INFO] ---------------------------------------------------------------------------- 

70. 
71.[INFO] Using following parameters for creating OldArchetype: maven-archetype-webapp:RELEASE  72. 

73.[INFO] ---------------------------------------------------------------------------- 

74. 
75.[INFO] Parameter: groupId, Value: com.taobao.maven 
76. 
77.[INFO] Parameter: packageName, Value: com.taobao.maven.web 
78. 
79.[INFO] Parameter: basedir, Value: D:/workspace/branch 
80. 
81.[INFO] Parameter: package, Value: com.taobao.maven.web 
82. 
83.[INFO] Parameter: version, Value: 1.0-SNAPSHOT 
84. 
85.[INFO] Parameter: artifactId, Value: maven-webapp 
86. 
87.[INFO] ********************* End of debug info from resources from generated POM *********************** 

88. 
89.[INFO] OldArchetype created in dir: D:/workspace/branch/maven-webapp  90. 
91.[INFO] ------------------------------------------------------------------------ 

92. 
93.[INFO] BUILD SUCCESSFUL 
94. 
95.[INFO] ------------------------------------------------------------------------ 

96. 
97.[INFO] Total time: 26 seconds 
98. 
99.[INFO] Finished at: Wed Dec 09 16:47:11 CST 2009 
100. 
101.[INFO] Final Memory: 8M/15M 
102. 
103.[INFO] ------------------------------------------------------------------------ 

 

此时已经创建了一个web项目,你可以切换到maven-webapp目录看到目录结构。

 

可以看一下这个pom.xml的内容。 

 
1.<project xmlns="
http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

2. 
3.  xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd"> 

2. 
3.  <modelVersion>4.0.0</modelVersion> 
2. 
3.  <groupId>com.taobao.maven</groupId>  4. 
5.  <artifactId>maven-webapp</artifactId>  6. 
7.  <packaging>war</packaging>  8. 
9.  <version>1.0-SNAPSHOT</version>  10. 
11.  <name>maven-webapp Maven Webapp</name>  12. 
13.  <url>http://maven.apache.org</url>  14. 
15.  <dependencies>  16. 
17.    <dependency>  18. 
19.      <groupId>junit</groupId>  20. 
21.      <artifactId>junit</artifactId>  22. 
23.      <version>3.8.1</version>  24. 
25.      <scope>test</scope>  26. 
27.    </dependency>  28. 
29.  </dependencies>  30. 
31.  <build>  32. 
33.    <finalName>maven-webapp</finalName>  34. 
35.  </build>  36. 
37.</project>  38. 
39.  
packaging: 这里值为war,表示希望将该项目以war包形式打包,打包后将会在 target目录创建一个 WAR 文件,并以finalName为文件名创建名为maven-wepapp.war的包。

Dependency:表示这里依赖了一个junit的jar文件,只在测试阶段时才使用到。打包时并不会打到war包中去。

第四步、这个简单的web包中已经有了一个helloworld 的index.jsp文件,我们要做的就是将这个项目打包成war,然后放到web容器中去就可以看到效果了。

打包命令 mvn install, 如下:

 

 

Target目录下已经存在了maven-webapp.war包,部署到Tomcat等容器下后。

访问:

Http://localhost:8080/maven-webapp/index.jsp

即可出现hello world 字样。

另外,maven提供了一个jetty的web容器插件,让我们可以不用自己去下载tomcat等容器,

但是需要在pom.xml配置jetty插件。

 1.<build>  2.    <finalName>maven-webapp</finalName>  2.    <plugins>  2.      <plugin>  3.        <groupId>org.mortbay.jetty</groupId>  4.        <artifactId>maven-jetty-plugin</artifactId>  5.      </plugin>  6.    </plugins> 
7.  </build>  配置好后,可以启动jetty服务器。mvn jetty:run 最后出现1.2009-12-09 17:35:37.065:INFO::jetty-6.1.22  2.2009-12-09 17:35:37.487:INFO::No Transaction manager found - if your webapp requires one, please configure one.  2.2009-12-09 17:35:40.049:INFO::Started
SelectChannelConnector@0.0.0.0:8080  3.[INFO] Started Jetty Server  表示启动成功,访问url即可。

如果jetty无法启动,在settings.xml中,配置一下  1.<pluginGroups>  2.    <!-- pluginGroup  3.     | Specifies a further group identifier to use for plugin lookup.  4.    <pluginGroup>com.your.plugins</pluginGroup>  2.    -->  2.    <pluginGroup>org.mortbay.jetty</pluginGroup> 
3.  </pluginGroups>   即可解决问题。  小提示: 如果想在eclipse中使用工程,则在命令行中运行 Mvn eclipse:eclipse  即可生成eclipse工程所需的.project等文件。 Mvn eclipse:clean  则是将eclipse配置信息清除  如果要在eclipse中查看外部引入包的源代码等,则在命令行中键入mvn dependency:sources  即可下载源代码

 

抱歉!评论已关闭.