一.安装maven软件
1.下载apache-maven-3.1.0
2.安装apache-maven-3.1.0
3.配置环境变量
4.验证maven,CMD输入mvn -v,验证正确性
二.搭建项目骨架
1.运行dos命令mvn archetype:generate,随后按提示输入后,创建
2.运行dos命令mvn archetype:generate -DgroupId=com.xh.maven -DartifactId=maven_03 -Dversion=0.0.1_SNAPSHOT,直接创建
三.maven常用命令
1.mvn package、mvn clean、mvn compile、mvn test、mvn clean install、mvn site、mvn site:deploy
四、创建项目“骨架”插件:
1、使用插件:maven-archetype-plugin,通过该插件可以自定义符合我们自己需求的archetype
2、在创建的maven project的pom.xml文件中添加archetype插件,如下面所示:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.micaicms</groupId>
<artifactId>micaicms-pom</artifactId>
<version>1.0</version>
</parent>
<artifactId>micaicms-web-archetype</artifactId>
<packaging>jar</packaging>
<name>micaicms web archetype</name>
<description>micaicms-web-archetype</description>
<distributionManagement>
<repository>
<id>releases</id>
<name>Micaicms Releases</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Micaicms Releases</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
3、运行你自己配置好的自定义的archetype项目
先执行mvn clean install(安装该archetype项目到你的本地仓库,发布该archetype项目到你的本地私服(nexus),注意settings.xml文件配置)
再执行mvn deploy
查看你刚才发布到nexus私服上去的archetype
在eclipse开发工具中配置你发布到私服上的自定义的archetype
a.打开你的开发工具,eclipse
b.选择Window->Preferences->Maven->Archetypes
c.点击Add Remote Catalog,输入你的nexus私服中archetype的地址,我这里是http://127.0.0.1:8081/nexus/content/groups/public/archetype-catalog.xml输入Description,随便输入都可以,我这里是micaicms-web-archetype
d.点击Ok,点击Apply
e.重新启动你的开发工具eclipse
f.使用自定义的archetype生成自定义的项目骨架
g.选择New->Maven Project->Next
h.选择你配置好的archetype
i.输入对应的groupId,artifactId,package
j.最后生成的项目骨架
(参考:http://blog.csdn.net/sxdtzhaoxinguo/article/details/46895013)
五、使用archetype骨架创建maven项目操作示例
下面用命名行创建一个最基本的maven项目
2.1 mvn archetype:generate
先创建项目的根目录,比如c:\test,命令行窗口下输入
cd /d c:\test
mvn archetype:generate
首次运行时,mvn会从远程"中央仓库"下载一些必需的文件到"本地仓库" - (如果你有兴趣,可以在等待下载过程中,观察一下"C:\Users\当前用户名.m2\repository"到底下载了些啥东东)
下载完成后(下一篇会讲解如何,在局域网环境中搭建“私服”,直接从局域网的代理仓库中下载这些依赖项),会自动进入交互模式,会让你输入一些基本信息,类似下面这样:
…
[INFO] Generating project in Interactive mode (这里会卡一会儿,因为要联网获取项目模板)
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: remote -> br.com.ingenieux:elasticbeanstalk-service-webapp-archetype (A Maven Archetype Encompassing RestAssured, Jetty, Jackson, Guice and Jersey for Publishing JAX-RS-based Services on AWS’ Elastic Beanstalk Service)
… (这里会自动列出很多项目模板,每种模板前面会有一个数字序号)
336: remote -> org.apache.maven.archetypes:maven-archetype-quickstart (An archetype which contains a sample Maven project.)
…
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 336:(这里根据每个人机器上安装的eclipse插件不同,可能默认的数字不是这个,先不管,直接回车)
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6: (直接回车)
Define value for property ‘groupId’: : cnblogs (可暂时先理解成类似package或namespace的名称,通常我们填写组织机构名称缩写)
Define value for property ‘artifactId’: : maven-hello-world(组件名称,可暂时理解成项目名称)
Define value for property ‘version’: 1.0-SNAPSHOT: :(版本号,直接回车,默认1.0-SNAPSHOT)
Define value for property ‘package’: cnblogs: : (打包后的jar文件名,相当于.net中项目最后生成的程序集dll名称)
Confirm properties configuration:
groupId: cnblogs
artifactId: maven-hello-world
version: 1.0-SNAPSHOT
package: cnblogs
Y: : (直接回车确认)
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: cnblogs
[INFO] Parameter: packageName, Value: cnblogs
[INFO] Parameter: package, Value: cnblogs
[INFO] Parameter: artifactId, Value: maven-hello-world
…
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS (看到这个,表示项目创建成功!)
[INFO] ------------------------------------------------------------------------
…
2.2 maven项目的目录结构
C:\test\maven-hello-world>tree
Folder PATH listing for volume win7
Volume serial number is AA2C-6E70
C:.
├───src
│ ├───main
│ │ └───java
│ │ └───cnblogs
│ └───test
│ └───java
│ └───cnblogs
└───target
└───classes
└───cnblogs
注意上面带红色的目录名,maven项目采用“约定优于配置”的原则,src/main/java约定用于存放源代码,src/main/test用于存放单元测试代码,src/target用于存放编译、打包后的输出文件。这是全世界maven项目的通用约定,请记住这些固定的目录结构。
三、编译项目
先进入刚才创建项目的根目录
cd /d c:\test\maven-hello-world
然后执行 mvn clean compile
这样就能对项目进行编译了,编译后会自动在target目录中生成class文件,如果编译成功,会输出类似下面的信息
yangjunmingmatoMacBook-Pro-7:maven-hello-world jimmy$ mvn clean compile
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-hello-world 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] — maven-clean-plugin:2.5:clean (default-clean) @ maven-hello-world —
[INFO]
[INFO] — maven-resources-plugin:2.6:resources (default-resources) @ maven-hello-world —
[INFO] Using ‘UTF-8’ encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/jimmy/Desktop/study/maven-hello-world/src/main/resources
[INFO]
[INFO] — maven-compiler-plugin:2.5.1:compile (default-compile) @ maven-hello-world —
[INFO] Compiling 1 source file to /Users/jimmy/Desktop/study/maven-hello-world/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.515s
[INFO] Finished at: Wed Jan 01 19:08:32 CST 2014
[INFO] Final Memory: 10M/156M
[INFO] ------------------------------------------------------------------------
四、单元测试
mvn clean test
这样就能做单元测试了,so easy !
如果单元测试不通过,会提示出错信息,注意看输出。
注:从输出上可以发现,test前,会先执行compile,即先编译,再执行单元测试.
有兴趣的朋友,可以修改下/src/test/java/cnblogs/AppTest.java里的内容,把testApp()方法中的assertTrue( true );改成assertTrue( false );再跑下单元测试,看下有什么不同
五、项目打包
通常我们会把java项目打包成jar包或war包,maven中打包的命令为
mvn clean package
运行完后,会在target目录下生成jar包
注:从输出 可以发现,package前,会先执行compile,再执行test,最后才是package打包
六、项目运行
该项目中的App.java中有main方法,可以直接运行,常规方式下,我们如果想直接运行class文件,得敲一段很长的命令,maven中不必这么复杂,先用记事本打开项目根目录下的pom.xml文件,增加下面这节内容:
View Code
上述这段内容插入在之前即可。
然后在命令行下,输入
mvn exec:exec
即可直接运行,下面是输出:
C:\test\maven-hello-world>mvn exec:exec
[INFO] Scanning for projects…
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-hello-world 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] — exec-maven-plugin:1.2.1:exec (default-cli) @ maven-hello-world —
Hello World!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.175s
[INFO] Finished at: Mon Jan 13 22:35:02 CST 2014
[INFO] Final Memory: 6M/111M
[INFO] ------------------------------------------------------------------------
七、项目部署
如果是web项目,使用命令
mvn clean jboss-as:deploy
就能自动将web项目部署到jboss中(前提是jboss web server已经成功启动),因为刚才我们创建的是一个最基本的maven项目,并非web项目,所以执行这条命令,应该会失败,后面会讲如何在eclipse中用插件部署web项目,这里可以先跳过。
另外:
有时候,我们的项目是一个类库,只是封装一些方法供其它项目引用,对于这种项目,我们可以用 mvn clean install 把生成的jar包,安装到“本地仓库”中,这样本机其它项目需要使用该jar包时,只要在pom里配置依赖项即可,不用把jar包复制到当前项目中。
操作示例参考:http://www.cnblogs.com/yjmyzz/p/3495762.html
作者:gokeiryou263
来源:CSDN
原文:https://blog.csdn.net/gokeiryou263/article/details/73275022
版权声明:本文为博主原创文章,转载请附上博文链接!