一、获取manven2:
http://maven.apache.org/download.html
二、学习资源:
http://www.sonatype.com/books/maven-book/reference_zh/public-book.html
三、获取依赖jar包的maven坐标的途径:
载入 http://www.mvnrepository.com 然后搜索一些常用的类库,如 Hibernate 或者 Spring Framework 。当你在这上面搜索构件时,它会显示一个 artifactId 和所有 Maven 中央仓库所知道的版本。 点击某个特定的版本后,它会载入一个页面,这个页面就包括了你需要复制到你自己项目 pom.xml 中的依赖元素。 你经常会发现某个特定的类库拥有多于一个的 groupId,这个时候你需要通过 mvnrepository.com 来帮助确定你到底需要怎样配置你的依赖
四、从定义开始:
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。
五、如何开始使用maven2:
环境变量配置:
M2_HOME=安装maven2所在的位置;【配置JAVA_HOME】
在path这个环境变量的末尾加上;%M2_HOME%/bin;
进入windows的cmd窗口键入mvn命令此时maven2便会在你的系统中创 建自己的存储仓库:默认位置为:C:/Documents and Settings/username[此处为当前系统用户名]/.m2。
注意:如果你在以上目录中没有发现.m2这个目录,此时可以检查你设置的M2_HOME这个环境变量应该是设成了系统环境变量,将其 改成用户环境变量,再进行以上操作便会发现maven2帮你生成的.m2这个目录。
六、创建一个简单的java项目:
在命令行使用Maven Archetype插件,命令如下:
F:/mvnstudy>mvn archetype:create -DgroupId=com.nhu.mvntest -DartifactId=simple 【即项目名】-DpackageName=com.nhu.mavenbook[即包名] –Dversion=1.0.
执行这条命令之后,maven2会帮我们在F:/mvnstudy目录下建立一个名叫simple的普通java项目,并且个项目在打包时会被打包成jar包.
打包应用:可以通过mvn install或mvn package这条命令打包该应用.
生成站点:mvn site
浏览你的项目依赖:mvn dependency:resolve
七、创建一个标准的web项目:
F:/mvnstudy>mvn archetype:create -DgroupId=com.nhu.mvntest -DartifactId=simple-webapp [项目名称] -DpackageName=com.nhu.mavenbook [包名] -DarchetypeArtifactId=maven-archetype-webapp[应用程序类型,此时代表为web项目,将打成war包].
配置jetty插件:
<project>
[...]
<build>
<finalName>simple-webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
[...]
</project>
在项目的 pom.xml中 配置好 Maven Jetty 插件之后,你就可以调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动你的 web 应用。如下运行 mvn jetty:run.
八、创建多模块程序:
一个典型的多模块工程的父工程的pom.xml如下所示:
<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>org.sonatype.mavenbook.ch06</groupId>
<artifactId>simple-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>
<name>Chapter 6 Simple Parent Project</name>
<modules>
<module>simple-weather</module>
<module>simple-webapp</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
注意其packaging的值:<packaging>pom</packaging>是pom而不是前面我们所见到的jar或者是war这意味着这个父项目不会被打包成一个jar包,或者是war包,当我们把任意一个普通的maven2项目的pom.xml中的packaging属性的值设置为pom时,该普通的maven2项目便会自动的变为一个可以包含多个子模块的父项目,当你在该父模块中创建其他maven2工程时,maven2便会自动的在该父模块中添加进你刚刚建立的子模块的引用,同时也会在该子模块中自动的加入对父模块的引用。
多模块工程的各个子模块之间可以相互依赖,当我们编译整个工程或只是单独的编译某个子模块时,系统会自动的去先编译相应的被依赖的子模块,然后将生成的jar包自动的加入到依赖该jar包的子模块中去,再编译该子模块
九、如何将一个标准的maven2工程导入到eclipse:
进入到当前工程的根目录,
执行mvn eclipse:eclipse命令便可以生成eclipse的.project文件,此时我们便可以将该工程import进eclipse了,并且在执行此命令的同时,maven2会帮我们将在pom.xml文件中配置的依赖jar包写入到刚刚生成的.classpath文件中,也就是说只要我们此时刷新工程eclipse能够根据该.classpath文件找到相应的jar包,不需要像以前那样自己去手动的将程序所依赖的jar包拷贝到classpath路径下面。
十、使用maven2来对我们的程序进行测试:
Maven2会自动的读取src/test/java目录下的junit单元测试类。当然我们也可以跳过单元测试执行maven2的其他生命周期的操作,其命令类似下面所示:
mvn package[此处为maven2的其他生命周期] –Dmaven.test.skip=true
十一、 注意:使用maven2来帮助我们管理我们的jar包时可能出现以下debug:你明明在classpath下看到了你需要的jar包,但是运行或编译工程时系统却说找不到相关的类,此时你可以检查该classpath中对应路径下的相关jar包的大小,如果小得异常(有的可能就只有1kb或2kb等),这时你不妨用相关的工具打开该jar包,里面很可能就是空的,这可能是因为某些原因导致maven2根据我们在pom.xml中的配置去远程仓库下载相应jar包时出现了问题,虽然你可以在本地仓库中发现该jar包,但其却是假的,此时你可以自己去手动下一个相应版本的jar包然后覆盖掉原本有问题的就OK了。
手工添加jar包到本地仓库:
1. 首先在要加到本地仓库的jar包所在文件夹建立一个pom.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<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>placeholder</groupId>
<artifactId>pltform-config</artifactId>
<version>1.0</version>
</project>
Then, install it using the command:
mvn install:install-file -DgroupId= placeholder -DartifactId= pltform-config -Dversion=10-Dpackaging=jar -Dfile= pltform-config.jar
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId= placeholder -DartifactId= pltform-config -Dversion=1.0-Dpackaging=jar -Dfile= pltform-config .jar-Durl= file:///F:/ppfuseRepository/repository