由于最近有个项目使用了maven做项目构建工具,所以就开始学习起了maven。

     以前公司用的是ant,但是maven对于jar的管理的确可以让开发者节省很大部分的时间.

我们先看看maven的核心 pom.xml

 

   

 
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2.  
  3. <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"> 
  4.  
  5.     <modelVersion></modelVersion> 
  6.  
  7.     <groupId></groupId> 
  8.  
  9.     <artifactId></artifactId> 
  10.  
  11.     <packaging></packaging> 
  12.  
  13.     <version></version> 
  14.  
  15.     <name>yesky-webapp-archetype Maven Webapp</name> 
  16.  
  17.     <url>http://maven.apache.org</url> 
  18.  
  19.     <dependencies> 
  20.  
  21.         <!--测试依赖--> 
  22.  
  23.         <dependency> 
  24.  
  25.             <groupId>junit</groupId> 
  26.  
  27.             <artifactId>junit</artifactId> 
  28.  
  29.             <version>3.8.1</version> 
  30.  
  31.             <scope>test</scope> 
  32.  
  33.         </dependency> 
  34.  
  35.     </dependencies> 
  36.  
  37. </project> 
dependency 就是你所需要添加的jar包依赖
还可以添加自己的公司内部依赖或者自己的依赖包
repository 标签的url中加入自己或公司的仓库路径即可
 
在来看看maven的生命周期
  • validate
  • generate-sources
  • process-sources
  • generate-resources
  • process-resources     复制并处理资源文件,至目标目录,准备打包。
  • compile     编译项目的源代码。
  • process-classes
  • generate-test-sources 
  • process-test-sources 
  • generate-test-resources
  • process-test-resources     复制并处理资源文件,至目标测试目录。
  • test-compile     编译测试源代码。
  • process-test-classes
  • test     使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
  • prepare-package
  • package     接受编译好的代码,打包成可发布的格式,如 JAR 。
  • pre-integration-test
  • integration-test
  • post-integration-test
  • verify
  • install     将包安装至本地仓库,以让其它项目依赖。
  • deploy     将最终的包复制到远程的仓库,以让其它开发人员与项目共享。

 

可以类似于ant那样在相对应的添加自己的命令
 
 
   
  1. <execution> 
  2.         <id>prepare-dependencies-repackage-copy</id> 
  3.                 <phase>generate-resources</phase> 
  4.                         <goals> 
  5.                             <goal>run</goal> 
  6.                         </goals> 
  7. <configuration> 
  8.                             <tasks> 
  9.                     <echo>generate-resources start!</echo> 
  10.          <!--复制到 dir目录下--> 
  11.     <copy todir="" overwrite="true"> 
  12.             <fileset dir="***"> 
  13. <include name="***" /> 
  14.         </fileset> 
  15.     </copy> 
  16.         </tasks> 
  17.     </configuration> 
  18.     </execution>