mvn 使用

常用命令为 :
mvn archetype:create :创建 Maven 项目
mvn compile :编译源代码
mvn test-compile :编译测试代码
mvn test : 运行应用程序中的单元测试
mvn site : 生成项目相关信息的网站
mvn clean :清除目标目录中的生成结果
mvn package : 依据项目生成 jar 文件
mvn install :在本地 Repository 中安装 jar
mvn deploy:将jar包发布到远程仓库
mvn eclipse:eclipse :生成 Eclipse 项目文件
生成项目
建一个 JAVA 项目 : mvn archetype:create -DgroupId=com.test -DartifactId=App
建一个 web 项目 : mvn archetype:create -DgroupId=com.test -DartifactId=web-app -DarchetypeArtifactId=maven-archetype-webapp
解释:
archetype 是一个内建插件,它的create任务将建立项目骨架
archetypeArtifactId 项目骨架的类型
groupId 项目的java包结构,可修改 artifactId 项目的名称,生成的项目目录也是这个名字,可修改
可用项目骨架有:
maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp


mvn install:install-file -DgroupId=com.outside.jsoup -DartifactId=jsoup -Dversion=1.0_releases -Dpackaging=jar -Dfile=E:\workspace\myspace\globe\lib\jsoup-1.6.1.jar


mvn deploy:deploy-file -DgroupId=com.outside.jsoup -DartifactId=jsoup -Dversion=1.6.1 -Dpackaging=jar -Dfile=E:\workspace\myspace\globe\lib\jsoup-1.6.1.jar -Durl=http://dev.game.yy.com/nexus/content/repositories/releases/ -DrepositoryId=releases


mvn install:install-file -Dfile=E:\workspace\admin\tag\target\admin-0.0.2-SNAPSHOT.jar -DgroupId=com.duowan.commons -DartifactId=default-jar -Dversion=2.0.2-SNAPSHOT -Dpackaging=jar

mvn install:install-file -Dfile=/home/fushimei/admin-0.0.2-SNAPSHOT.jar -DgroupId=com.duowan.commons -DartifactId=default-jar -Dversion=2.0.2-SNAPSHOT -Dpackaging=jar


mvn archetype:create-from-project 完成后到 target/gexxx../archetype/ 下执行 mvn install

mvn archetype:generate -DarchetypeCatalog=local ;// -Dgoals=antrun:run


mvn exec:java -Dexec.mainClass=


mvn test -Dmaven.test.failure.ignore=true


mvn dependency:analyze-only


首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼
您还未登录 ! 登录 注册
jackyrong

博客
微博
相册
收藏
留言
关于我

MVN学习笔记1

博客分类:
JAVA相关

mavenSpringjunitApacheXML
mvn学习笔记1


1 mvn -v查看版本

2 设置代理
编辑settings.xml文件
<proxies>
<proxy>
<id>abc</id>
<active>true</active>
<protocol>http</protocol>
<host> </host>
<port></port>
<username>...</username>
<password>....</password>
<nonProxyHosts>.....</nonProxyHosts>
</proxy>

</proxies>
nonproxyhosts指定哪些主机名不使用代理


3 mvn clean install会把生成的jar打包到MAVEN的本地仓库中
4 在dependency中,当<scope>为test时,说明该依赖包只会加入到测试代码中去

5 maven的编译依赖范围:
compile:默认使用该依赖,对编译,测试,运行三种classpath 都有效
test: 只对测试时有效,如junit
provided:在运行时无效,对编译和测试有效,如servlet-api
runtime:如JDBC,对测试和运行有效,在编译时无效
6 归类依赖
比如spring下的很多模块,都是同一个项目的,版本都相同,则为了优化,可以这样,

先定义一个<properties>项,即
<properties>
<abc>1.0</abc>
</properties>

然后其他的dependcy中,可以这样
<version>${abc}</version>

7 mvn dependency:list
可以看到当前项目已解析的依赖


[IMPORTENT]
mvn dependency:tree 看到依赖树

scope(compile,..,import)


mvn dependency:analyse 查看依赖的工具
org.apache.maven.plugin.MojoNotFoundException: Could not find goal 'analyse' in plugin org.apache.maven.plugins:maven-dependency-plugin:2.1 among available goals unpack-dependencies, go-offline, copy-dependencies, analyze-dep-mgt, list, purge-local-repository, help, get, build-classpath, sources, analyze-report, analyze, tree, unpack, resolve, copy, analyze-only, resolve-plugins

8 MVN的仓库
MVN仓库的路径形式为groupId/artifactId/version/articatId-version.packagin
仓库分为本地仓库和远程仓库
本地仓库的路径修改,可以修改settings.xml
<settings>
<localRepository>d:\java\......</localRepository>
</settings>

9 MVN的生命周期:clean(清理项目),default是构建项目,site是建立项目站点

10 命令行与生命周期
mvn clean
mvn test
mvn clean install
mvn clean deploy site-depoly

MVN的插件和目标对应的关系 dependcy:analyze 冒号前面是插件前缀,冒号后面是

插件的目标


11 聚合
当想一次过构建多个模块时,可以使用聚合,关系是包含和被包含的关系:
<modules>
<module>.. </module>
<module>.....</module>
</modules>
12 继承
抽取一个parent.pom,比如:
<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>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Account Parent</name>
<properties>
<springframework.version>2.5.6</springframework.version>
<junit.version>4.7</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<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>
<plugin>


<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-

plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
这里有定义了父的依赖和插件。而子的继承则变为:
<parent>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../account-parent/pom.xml</relativePath>
</parent>
。。。。这里定义具体的依赖,其依赖不需要版本号了,比如这样:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</dependencies>


13 剪裁反应堆
比如多个模块的话,有可能只是选取其中的某些部分:
比如mvn-aggragtor下有mvn-email,mvn-parent,mvn-persist,mvn-email依赖mvn-

parent,则
mvn clean install -pl account-email -am
-pl:构建指定的模块,模块间用逗号分割 -am:同时构健模块的所依赖的模块


14 默认情况下,maven-surefile-plugin的test目标会自动执行测试
src/test/java下的一组命名模式的测试类,该组模式为
**/Test*.java:
**/*Test.java:
**/*TestCase.java:
跳过测试:mvn package-DskipTests
跳过测试代码的编译: mvn package-Dmaven.test.skip=true
15 只运行指定的测试:
mvn test-Dtest=类名
匹配
mvn test-Dtest=Random*Test
在pom中,可以自动运行以Tests结尾的测试类
<plugin>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
同样可以用<excludes><exclude>去排除运行测试的类

16 测试覆盖率报告
mvn跟开源测试覆盖率统计工具 合成,比如
mvn cobertura:cobertura
之后在target/site/cobertura下看到index.html文件
分享到:
几篇介绍百度地图API的好文 | (转)gallary和imageswitcher

2011-03-01 14:32
浏览 2341
评论(0)
分类:企业架构
相关推荐

评论
发表评论

您还没有登录,请您登录后再发表评论
jackyrong的博客
jackyrong

浏览: 990324 次
性别: Icon_minigender_1
来自: 广州

最近访客 更多访客>>
lyd8935的博客
lyd8935
tortoise88的博客
tortoise88
hunter_hsq的博客
hunter_hsq
笑瞰人生天字号的博客
笑瞰人生天字号
文章分类

全部博客 (1665)
软件工程 (58)
JAVA相关 (290)
ajax/web相关 (205)
数据库相关/oracle (181)
PHP (142)
UNIX/LINUX/FREEBSD/solaris (81)
音乐探讨 (1)
闲话 (11)
网络安全等 (14)
.NET (153)
ROR和GOG (10)
[网站分类]4.其他技术区 (180)
算法等 (6)
[随笔分类]SOA (8)
收藏区 (71)
金融证券 (4)
[网站分类]5.企业信息化 (3)
c&c++学习 (1)
读书区 (11)
其它 (9)
收藏夹 (1)
设计模式 (1)
FLEX (13)
Android (95)
软件工程心理学系列 (2)
HTML5 (2)
C/C++ (0)
数据结构 (0)
书评 (2)
python (3)

社区版块

我的资讯 (1)
我的论坛 (33)
我的问答 (2)

存档分类

2013-01 (10)
2012-12 (26)
2012-11 (16)
更多存档...

评论排行榜

spring 3中的@async初探
Resteasy转换JAXB和json
用apache common io包获得文件扩展名
关注google的guava工具包
spring mongodb中去掉_class列

最新评论

zean: vsd可以?openoffice不支持吧,我现在还头疼呢.
flexpaper组件中关于隐藏真实的swf 地址下载
jackyrong: hehe,跟学友合照的
ajax post中在firefox返回值一个值得注意的地方
wingsrao: 楼主头像有故事
ajax post中在firefox返回值一个值得注意的地方
焦志广: 有源码包么?上传一个
10分钟使用CXF和SPRING创建REST webservice应用
jackyrong: 这个有点旧,不少还是有的,我到时更新下吧
收集下阿里集团下的技术BLOG

声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。若作者同意转载,必须以超链接形式标明文章原始出处和作者。
© 2003-2012 ITeye.com. All rights reserved. [ 京ICP证110151号 京公网安备110105010620 ]


还有一个地方需要调整


[INFO] Copying webapp resources [/data/hudson_home/jobs/Shop-trade/workspace/trade-web/src/main/webapp]
[INFO] Copying webapp resources [/data/hudson_home/jobs/ gamecard/workspace/zadan /src/main/webapp]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值