zoukankan      html  css  js  c++  java
  • maven-plugins说明

    maven提供了丰富的plugins。

    maven是一个插件执行的框架。

    核心部分的描述:

    1.  clean.
      • clean插件。
      • goal:clean
      • 清除构建时生成的文件,文件目录
        • project.build.directory
        • project.build.outputDirectory,
        • project.build.testOutputDirectory,
        • project.reporting.outputDirectory.
      •   使用示例
        • 忽略错误
          •  忽略清除中的错误
            •   命令行:mvn clean -Dmaven.clean.failOnError=false
            •   <build>
                [...]
                  <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>2.5</version>
                    <configuration>
                      <failOnError>false</failOnError>
                    </configuration>
                  </plugin>
                [...]
              </build> 

              默认构建时执行clean命令:
              <project>
                [...]
                <build>
                  <plugins>
                    <plugin>
                      <artifactId>maven-clean-plugin</artifactId>
                      <version>2.5</version>
                      <executions>
                        <execution>
                          <id>auto-clean</id>
                          <phase>initialize</phase>
                          <goals>
                            <goal>clean</goal>
                          </goals>
                        </execution>
                      </executions>
                    </plugin>
                  </plugins>
                </build>
                [...]
              </project>
               
        • 忽略clean操作
          •   命令行:
            mvn clean -Dclean.skip=true
          •   pom配置:
          • <build>
              [...]
                <plugin>
                  <artifactId>maven-clean-plugin</artifactId>
                  <version>2.5</version>
                  <configuration>
                    <skip>true</skip>
                  </configuration>
                </plugin>
              [...]
            </build>
            

              

        • 删除指定文件
          •   pom配置
          • <build>
              [...]
              <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                  <filesets>
                    <fileset>
                      <directory>some/relative/path</directory>
                      <includes>
                        <include>**/*.tmp</include>
                        <include>**/*.log</include>
                      </includes>
                      <excludes>
                        <exclude>**/important.log</exclude>
                        <exclude>**/another-important.log</exclude>
                      </excludes>
                      <followSymlinks>false</followSymlinks>
                    </fileset>
                  </filesets>
                </configuration>
              </plugin>
              [...]
            </build>
            

            路径可以为相对或绝对。   

    2. compiler
      • 编译器:
        •     3.0+: javax.tools.JavaCompiler
        •   3.0-:javac
        • 默认编译:1.5
      • 目标:均属已绑定
        • compile
        • testcompile
      • 使用示例
        • 命令行:
          • mvn compile
          • mvn testcompile
        • pom
          • 自动编译  
            <project>
              ...
              <build>
                <pluginManagement>
                  <plugins>
                    <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-compiler-plugin</artifactId>
                      <version>3.1</version>
                      <configuration>
                        <!-- put your configurations here 
            <configuration>

            <source>1.4</source>
                      <target>1.4</target>
                    </configuration>

            --> </configuration> </plugin> </plugins> </pluginManagement> </build> ... </project>

            指定不同的jdk:

          • <project>
              [...]
              <build>
                [...]
                <plugins>
                  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                      <verbose>true</verbose>
                      <fork>true</fork>
                      <executable><!-- path-to-javac --></executable>
                      <compilerVersion>1.3</compilerVersion>
                    </configuration>
                  </plugin>
                </plugins>
                [...]
              </build>
              [...]
            </project>

            //指定内存:
            <fork>true</fork>
            <meminitial>128m</meminitial> <maxmem>512m</maxmem>
            //指定参数
            <compilerArgument>-verbose -bootclasspath ${java.home}lib
            t.jar</compilerArgument>
            或这样的形式:
            <compilerArguments>
               <verbose />
               <bootclasspath>${java.home}lib
            t.jar</bootclasspath>
            </compilerArguments>    
    3. deploy
      •   goal:
      • 使用
        • distribute设置:
        •  <distributionManagement>
              <repository>
                <id>xx-repository</id>
                <url>ftp://repository.mycompany.com/repository</url>
              </repository>
            </distributionManagement>

          settings.xml中须包含id对应的配置“
          <servers>
              <server>
                <id>xx-repository</id>
                <username>user</username>
                <password>pass</password>
              </server>
            </servers>
          
          

            
        • pom中buil的设置
        • <build>
              <extensions>
                <extension>
                  <groupId>org.apache.maven.wagon</groupId>
                   <artifactId>wagon-ftp</artifactId>
                   <version>1.0-beta-6</version>
                </extension>
              </extensions>
            </build>
          
        • 无pom的deploy
        • mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy-file -Durl=file:///C:/m2-repo 
                                                                                      -DrepositoryId=some.id 
                                                                                      -Dfile=path-to-your-artifact-jar 
                                                                                      -DgroupId=your.groupId 
                                                                                      -DartifactId=your-artifactId 
                                                                                      -Dversion=version 
                                                                                      -Dpackaging=jar 
                                                                                      -DgeneratePom=false

          指定类型的:
          mvn org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy-file -Durl=http://localhost:8081/repomanager/ 
                                                                                      -DrepositoryId=some.id 
                                                                                      -Dfile=path/to/artifact-name-1.0.jar 
                                                                                      -DpomFile=path-to-your-pom.xml 
                                                                                      -Dfiles=path/to/artifact-name-1.0-debug.jar,path/to/site.pdf 
                                                                                      -Dclassifiers=debug,site 
                                                                                      -Dtypes=jar,pdf

            

    4. failsafe
      • 运行junit 集成测试,使用独立的classloader
        • 与sufire的单元测试运行不同,该插件运行的是集成测试
      • 生命周期内会用到该插件的:  
        • pre-integration-test for setting up the integration test environment.
        • integration-test for running the integration tests.
        • post-integration-test for tearing down the integration test environment.
        • verify for checking the results of the integration tests.
      • goal
      • 结果
        • Plain text files (*.txt)
        • XML files (*.xml)
        • ${basedir}/target/failsafe-reports.
      • 使用
        •   
          <plugins>
          [...]
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-failsafe-plugin</artifactId>
              <version>2.16</version>
              <dependencies>
             //设置surefire的provider版本 <dependency> <groupId>org.apache.maven.surefire</groupId> <artifactId>surefire-junit47</artifactId> <version>2.16</version> </dependency>
             </dependencies>
          //设置并发
           <configuration>
                    <parallel>methods</parallel>
                    <threadCount>10</threadCount>
                  </configuration>

          //报表设置:(自定义)

          <configuration>
                <properties>
                  <property>
                    <name>listener</name>
                    <value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value>
                  </property>
              </configuration>
          </plugin> [...] </plugins>

          集成测试 后续再深入探讨  

            
    5. install
      • install Install the built artifact into the local repository.  
      • goal
      • 使用
        • 命令行
          •   
            mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file -Dfile=path-to-your-artifact-jar -DpomFile=path-to-pom
            

            校验和设置

          • mvn install -DcreateChecksum=true
            

            install 源码:  

            mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file  -Dfile=path-to-commons-logging-sources.jar 
                                                                                          -DgroupId=commons-logging 
                                                                                          -DartifactId=commons-logging  
                                                                                          -Dversion=1.0.3 
                                                                                          -Dpackaging=jar 
                                                                                          -Dclassifier=sources 
    6. surefire
      • mvn test使用
      • 生成测试结果:
        • Plain text files (*.txt)
        • XML files (*.xml)
        • 目录: ${basedir}/target/surefire-reports.
      • goal:
        • surefire:test 
      • 示例:
        <plugins> [...] <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <parallel>methods</parallel> <threadCount>10</threadCount> </configuration> </plugin> [...] </plugins>
        设置路径:
        <configuration>
                  <additionalClasspathElements>
                    <additionalClasspathElement>path/to/additional/resources</additionalClasspathElement>
                    <additionalClasspathElement>path/to/additional/jar</additionalClasspathElement>
                  </additionalClasspathElements>
                </configuration>

          

           
    7. site:粗糙带过
      • goal
          • site:site is used generate a site for a single project. Note that links between module sites in a multi module build will not work, since local build directory structure doesn't match deployed site.
          • site:deploy is used to deploy the generated site using Wagon supported protocol to the site URL specified in the <distributionManagement> section of the POM.
          • site:run starts the site up, rendering documents as requested for faster editing. It uses Jetty as the web server.
          • site:stage generates a site in a local staging or mock directory based on the site URL specified in the <distributionManagement> section of the POM. It can be used to test that links between module sites in a multi module build works.
          • site:stage-deploy deploys the generated site to a staging or mock directory to the site URL specified in the <distributionManagement> section of the POM.
          • site:attach-descriptor adds the site descriptor (site.xml) to the list of files to be installed/deployed. For more references of the site descriptor, here's a link.
          • site:jar bundles the site output into a JAR so that it can be deployed to a repository.
          • site:effective-site calculates the effective site descriptor, after inheritance and interpolation.
      • 使用
      • <project>
          ...
          <reporting>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.6</version>
                <reportSets>
                  <reportSet>
                    <reports><!-- select reports -->
                      <report>index</report>
                    </reports>
                  <reportSet>
                </reportSets>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.9</version>
                <reportSets>
                  <reportSet><!-- by default, id = "default" -->
                    <reports><!-- select non-aggregate reports -->
                      <report>javadoc</report>
                      <report>test-javadoc</report>
                    </reports>
                  </reportSet>
                  <reportSet><!-- aggregate reportSet, to define in poms having modules -->
                    <id>aggregate</id>
                    <inherited>false</inherited><!-- don't run aggregate in child modules -->
                    <reports>
                      <report>aggregate</report>
                    </reports>
                  </reportSet>
                </reportSets>
              </plugin>
            </plugins>
          </reporting>
          ...
        </project>
        

          

          先暂时这些,后续再补上。
  • 相关阅读:
    qmake杂
    Qt界面风格设置
    qss使用详解
    QT数据库操作
    Qt语言家的简单使用
    c++11之右值引用和std::move
    c++11之类型萃取type_traits
    c++11之std::bind和function
    c++11之lambda
    vue中input输入框无法输入
  • 原文地址:https://www.cnblogs.com/leeying/p/3525789.html
Copyright © 2011-2022 走看看