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]

猜你喜欢

转载自gelongmei.iteye.com/blog/2002177
mvn