`
Josh_Persistence
  • 浏览: 1631827 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Maven常用命令及常见知识在项目中的实际运用 - 不断更新中

阅读更多

项目中有用的Maven命令

 

一、maven是什么?

Maven这个词可以翻译为“知识的积累”,也可以翻译为“专 家”或“内行”。作为Apache组织中的一个颇为成功的开源项目,Maven主要服务于基于Java平 台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目,还是大型的企业级应用;无论是传统的瀑布式开发,还是流行的敏捷模式,Maven都能大显身手。

 

1.  将没有在maven官方repository中的jar包加入到本地的maven repository中:

mvn install:install-file  -Dfile=path-to-your-artifact-jar -DgroupId=your.groupId -DartifactId=your-artifactId  -Dversion=your-version -Dpackaging=jar

 

2.  使Maven2在下载依赖包的同时下载其源代码包和文档的方法

   (Maven import the source code and documentation)

1). 使用maven命令:mvn dependency:sources 下载依赖包的源代码。

 

2). 使用参数 -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。

      mvn eclipse:eclipse -Declipse.useProjectReferences=true -DdownloadSources=true -DdownloadJavadocs=true 

      mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true

      mvn -DdownloadSources=true -DdownloadJavadocs=true -DoutputDirectory=target/eclipse-classes eclipse:eclipse

     mvn -DdownloadSources=true eclipse:eclipse

 

更为直观的理解:使用mvn eclise:clean eclipse:eclipse之前,eclipse中项目的布局是:


 在使用该命令之后,项目布局是:


 

3. 使用Maven命令执行java Class的main方法:

 

mvn exec:java -Dexec.mainClass="com.wsheng.test.RunSampleMainClass" -Dexec.classpathScope=test

 

4. 在控制台中执行Maven命令时,怎样用log记录查看所有的执行过程中的信息: 

1) 如查看maven在install时的具体执行信息:

       常规: mvn clean install -DskipTests

       查看详细信息: mvn clean install -DskipTests -X -e

2) 将Maven在install时执行的具体信息输出到C盘目录下的log.txt中

 a) 首先使用plugin enable dependency tree

.            <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-dependency-plugin</artifactId>

              <version>2.5.1</version>

              <executions>

                  <execution>

                     <id>build-classpath</id>

                     <phase>generate-sources</phase>

                     <goals>

                         <goal>build-classpath</goal>

                     </goals>

                     <configuration>

                         <!-- configure the plugin here -->

                     </configuration>

                  </execution>

              </executions>

           </plugin>

  b). mvn clean install -X > c:/log.txt

 

5. maven中多个命令可以合并使用:maven –U clean eclipse:clean eclipse:eclipse

mvn clean:  清除目标目录中的生成结果。

mvn eclipse:eclispse: 生成 Eclipse 项目文件及包引用定义,注意,需确保定义Classpath Variables: M2_REPO,指向本地maven类库目录。

 

6.mvn clean install site -DskipTests -Dmaven.test.skip

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle 构建的核心部分,编译(complile),测试(test),打包(package),安装(install), 部署(deploy)等等。mvn clean install会把生成的jar打包到MAVEN的本地仓库中
  • Site Lifecycle 生成项目报告,站点,发布站点。
  • -Dmaven.test.skip 在编译,打包,部署时忽略测试包中的Class和Resources.

如果想跳过测试阶段,可用:

mvn package -DskipTests

想临时性跳过测试代码的编译,可用:

mvn package -Dmaven.test.skip=true

maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,既跳过编译,又跳过测试。

 

 

 7. mvn -v 查看所在机器上maven的安装版本 

 

 8.  设置maven中下载jar包的时候使用代理服务器下载,也可同时设置哪些主机不使用代理。

    编辑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指定哪些主机名不使用代理 

 

9.查看Maven中的依赖情况:

mvn dependency:list   可以看到当前项目已解析的依赖 
mvn dependency:tree  看到依赖树 
mvn dependency:analyse 查看依赖的工具 

 

10. 剪裁反应堆(执行模块)

有时多个模块的话,有可能只是选取其中的某些部分执行: 
 比如mvn-aggragtor下有mvn-email,mvn-parent,mvn-persist,mvn-email等模块依赖mvn- parent模块,则 
mvn clean install -pl account-email -am 
-pl:构建指定的模块,模块间用逗号分割 -am:同时构健模块的所依赖的模块 

 

11. Maven跳过测试和测试代码的编译:

跳过测试scope(test):mvn package-DskipTests 
跳过测试代码的编译:  mvn package-Dmaven.test.skip=true 

注: 默认情况下,maven-surefile-plugin的test目标会自动执行测试 

src/test/java下的一组命名模式的测试类,该组模式为 
   **/Test*.java: 
   **/*Test.java: 
   **/*TestCase.java: 
12. Maven中执行指定的测试:
mvn test-Dtest=类名 
mvn test-Dtest=Random*Test  (匹配 )
注:
在pom中,可以自动运行以Tests结尾的测试类 
       <plugin> 
   <configuration> 
     <includes> 
     <include>**/*Tests.java</include> 
    </includes> 
同样可以用<excludes><exclude>去排除运行测试的类 
13. 测试覆盖率报告 
mvn跟开源测试覆盖率统计工具 合成,比如 
mvn cobertura:cobertura 之后在target/site/cobertura下看到index.html文件 
14. 指定Maven只执行某个特定的类中的所有方法:如执行类TestCircle.
mvn -Dtest=TestCircle test
当然可以使用匹配模式来指定执行几个class
mvn -Dtest=TestCi*le test
更强的地方在于你可以混合使用多个名称和模式,用逗号隔开即可
mvn -Dtest=TestSquare,TestCi*le test
15.执行某个类中的几个方法或者某个方法
注意:1. 在2.7.3版本中,在一个Test Class中,你只可以执行多个方法。
           2. 只支持Junit4.x和TestNG
mvn -Dtest=TestCircle#mytest test
当然,也可以使用模式
mvn -Dtest=TestCircle#test* test
在surefire 2.1,可以选择执行多个方法,这种方式只能用junit4.x
mvn -Dtest=TestCircle#testOne+testTwo test
 16. 如果希望某个Unit Test失败时不会影响其他Unit Test的执行,则使用
     -Dmaven.test.failure.ignore=true
其它Maven有用的小知识:
1. maven的编译依赖范围: 
        compile:默认使用该依赖,对编译,测试,运行三种classpath 都有效 
        test: 只对测试时有效,如junit 
        provided:在运行时无效,对编译和测试有效,如servlet-api 
        runtime:如JDBC,对测试和运行有效,在编译时无效 
2. 归类依赖 

   比如spring下的很多模块,都是同一个项目的,版本都相同,则为了优化,可以这样, 
先定义一个<properties>项,即 
   <properties> 
   <abc>1.0</abc> 
  </properties> 
 然后其他的dependcy中,可以这样  <version>${abc}</version> 

 

3. MVN的仓库 

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

 

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

 

5. MVN的插件和目标的对应关系

dependcy:analyze 冒号前面是插件前缀,冒号后面是插件的目标 

 

6. Maven中的 聚合 

   当想一次过构建多个模块时,可以使用聚合,关系是包含和被包含的关系: 
   <modules> 
      <module>..  </module> 
       <module>.....</module> 
   </modules> 

 

7. Maven中依赖关系的Scope

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:

* compile,缺省值,适用于所有阶段,会随着项目一起发布。

* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

 * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

 

8、安装本地jar包到本地仓库中:

是自己编写的一个jar文件,每次添加单个jar到maven本地仓库的操作如下: 1.建立一个新的文件夹,将jar文件存放在该文件夹下。   注意文件夹下最好只存放该文件。 2.在该文件夹下建立一个pom.xml文件,在pom文件中定义其maven坐标。 3.在cmd窗口中执行以下命令:  mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging> 

例如:

mvn install:install-file  -Dfile=D:/jar/xxx.jar  -DgroupId=xxx.xxx  -DartifactId=xxx -Dversion=x.x -Dpackaging=jar

 

如:

mvn install:install-file -Dfile=plexus-utils-1.1.jar -DgroupId=org.codehaus.plexus -DartifactId=plexus-utils -Dversion=1.1 -Dpackaging=jar

 

 

  • 大小: 4.2 KB
  • 大小: 3 KB
分享到:
评论

相关推荐

    maven常用命令以及以个测试项目

    maven常用命令以及以个测试项目方便测试

    maven常用命令

    对于maven,你不应该只知道在pom中如何引入jar包,还应该了解maven一些常用的命令

    Maven常用命令 Maven Maven学习

    Maven常用命令 Maven Maven学习

    maven常用命令.docx

    一、maven常用命令: 1.mvn clean 清空产生的项目( target里) 2.mvn compile 编译源代码 3.mvn install 在本地repository中安装jar(包含mvn compile,mvn package,然后上传到本地仓库) 4.mvn deploy 上传到私服...

    maven常用的命令

    maven常用的命令

    Maven常用命令大全与pom文件讲解

    摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...

    maven 常用命令集合

    主要描述了maven的一些常用命令,以备您不时之需

    maven常用命令.txt

    maven常用命令

    Maven 命令Maven 命令Maven 命令

    Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令Maven 命令

    maven常用知识整理

    maven常用知识整理:项目依赖 多模块 WAR依赖 打包 热部署 maven-tomcat-plugin maven-jetty-plugin

    maven配置命令及项目部署

    maven 配置简介及项目创建,包括pom.xml详细介绍,eclipse平台maven创建项目编译等

    Maven在eclipse中的项目启动命令

    Maven在eclipse中的项目启动命令

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    Maven常用命令

    Maven常用命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码 mvn test-compile :编译测试代码 mvn test : 运行应用程序中的单元测试 mvn site : 生成项目相关信息的网站 mvn clean :清除...

    maven仓库清理命令

    maven仓库清理命令

    maven 常用命令

    maven 常用命令、操作方法、打包步骤、网站链接。

    apache-maven-3.3.9.rar

    apache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9....

Global site tag (gtag.js) - Google Analytics