maven简单使用

Maven 是一个项目管理和构建自动化工具

简单说明

mvn生命周期

validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。  
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
Package:把已编译的代码打包成可发布的格式,比如jar。
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
verify:运行所有检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。
site:为项目生成文档站点

默认目录结构

${basedir} 存放 pom.xml和所有的子目录
${basedir}/src/main/java 项目的 java源代码
${basedir}/src/main/resources 项目的资源,比如说 property文件
${basedir}/src/test/java 项目的测试类,比如说 JUnit代码
${basedir}/src/test/resources 测试使用的资源

一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

实战配置

单独下载的maven(非内置), http://maven.apache.org/download.html ,下载下来之后,解压,找个路径放进去, 把bin的位置设在环境变量里

新建环境变量MAVEN_HOME

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains) 默认按回车
C:\Program Files (x86)\apache-maven-3.0.5

将 %MAVEN_HOME%\bin 加到PATH中
还需要设置JAVA_HOME,不然会报错找不到

$ mvn -v 

若配置正确则显示正确,可以配置eclipse使用外置maven版本

修改setting.xml文件设置仓库地址

C:\Program Files (x86)\apache-maven-3.0.5\conf

svn help:system,若是第一次运行会输出一些信息
maven将要花一些时间去把最新的工具包(Maven 把它叫作artifacts)下载到你的本地仓库。

$mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT

其中参数说明

archetype可以理解成项目的模型
groupId:项目组织的逆向域名,比如Apache的项目可以org.apache开头
artfactId:表示groupId下单个项目的唯一标识
version:发布项目的版本,版本标识加上SNAPSHOT标记
packing:项目打包后的输出,默认为jar。指为war项目打包生成一个web项目。
groupId,artfactId,version标识项目的唯一性,packing可以缺省

然后输入参数

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):595 回车

Choose org.apache.maven.archetypes:maven-archetype-quickstart version: 6 回车

Confirm properties configuration:
xxxxx
回车

然后目录下生成了一个helloworld的项目目录

d:\workspace\helloworld>tree
D:.
└─src
    ├─main
    │  └─java
    │      └─com
    │          └─mycompany
    │              └─helloworld
    └─test
        └─java
            └─com
                └─mycompany
                    └─helloworld

运行mvn package进行编译+测试,又是下载一坨东西,package前,会先执行compile,再执行test,最后才是package打包

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.mycompany.helloworld.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ helloworld ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.367s
[INFO] Finished at: Wed May 06 17:42:02 CST 2015
[INFO] Final Memory: 7M/155M
[INFO] ------------------------------------------------------------------------

这时候tree下,可以看到生成了target目录
此时的jar包,还不能直接运行
在pom.xml下之前增加build属性

<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <executable>java</executable>         
                    <arguments>                      
                        <argument>-classpath</argument>
                        <classpath>
                        </classpath>
                        <argument>com.mycompany.helloworld.App</argument>
                    </arguments>
                </configuration>
            </plugin>
        </plugins>
    </build>

然后运行mvn exec:exec

d:\workspace\helloworld>mvn exec:exec
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building helloworld 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.2.1:exec (default-cli) @ helloworld ---
Hello World!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.525s
[INFO] Finished at: Wed May 06 18:29:55 CST 2015
[INFO] Final Memory: 5M/123M
[INFO] ------------------------------------------------------------------------

一般使用到的命令

mvn package              生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
mvn compile              编译
mvn test                 编译并测试
mvn clean                清空生成的文件
mvn eclipse:eclipse                         将项目转化为Eclipse项目

打开ecplise若遇到maven integration for eclipse jdk warning
设置Eclipse--Windows--Preferences--Java--Installed JREs将JRE home改成jdk目录:Add->Standard VM->Directory->选择jdk的目录

在ecplise目录下面修改eclipse.ini

-vm
C:\Program Files (x86)\Java\jdk1.7.0_75\bin

参考文档 http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html

posted @ 2018-02-10 10:37  opama  阅读(230)  评论(0编辑  收藏  举报