zoukankan      html  css  js  c++  java
  • mvn 用法

    mvn 用法
    1、查看版本、打包
    mvn -v

      mvn clean

      mvn package (直接打包)

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

    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的本地仓库中 
    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 
       可以看到当前项目已解析的依赖 
       mvn dependency:tree  看到依赖树 
        mvn dependency:analyse 查看依赖的工具 
    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文件 
  • 相关阅读:
    电商拼团系统开发思路和拼团系统开发产品设计思路
    唐古拉优选拼团系统设计模式和唐古拉优选拼团系统核心代码介绍
    计算机体系结构之三--函数的调用和返回【译】
    cxv文件合并
    ubuntu18.04安装Mono及MonoDevelop,用c#开发winform
    repo怎么都下不完,原因
    repo下载安卓源码经常掉线,解决方法
    编译ad10
    ub18.04 root账户
    安卓源码导入android studio
  • 原文地址:https://www.cnblogs.com/lhj588/p/2651241.html
Copyright © 2011-2022 走看看