四步让 Maven为您工作起来

转载于: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  即可下载源代码

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven中,继承是一种机制,允许通过一个父项目(parent project)定义和传递共同的配置和依赖给子项目(child project)。这样可以减少重复的配置,提高项目的可维护性。 父项目是一个普通的Maven项目,它定义了一些通用的配置,如插件管理、依赖管理、构建配置等,并包含一个pom.xml文件。子项目则通过继承父项目来获取这些共享的配置。 在子项目的pom.xml文件中,通过使用`<parent>`元素来指定父项目的坐标(groupId、artifactId、version)。子项目可以继承父项目的所有配置,也可以覆盖或增加一些特定的配置。 当构建子项目时,Maven会自动合并父项目和子项目的配置,并按照继承关系进行构建。这意味着子项目可以继承父项目的插件、依赖和构建目标等,并且可以在子项目中添加额外的插件、依赖和构建目标。 通过继承,可以实现以下几个方面的好处: 1. 代码复用:子项目可以共享父项目中的通用配置,减少了重复的配置工作。 2. 统一管理:通过在父项目中定义依赖管理和插件管理,可以确保子项目中使用相同版本的依赖和插件,提高项目的一致性。 3. 简化配置:子项目只需要关注特定的配置,而不需要重复定义父项目已经配置好的内容。 4. 分离关注点:父项目可以专注于定义通用的配置,而子项目可以专注于自己的特定需求。 总结起来Maven的继承特性提供了一种简单而强大的方式来共享和管理项目配置,提高了项目的可维护性和可扩展性。通过继承,可以减少重复的工作,统一管理依赖和插件,并分离关注点,使得项目开发更加高效和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值