maven 包管理平台-07-plugins 常见插件介绍

打印 上一主题 下一主题

主题 927|帖子 927|积分 2781

拓展阅读

maven 包管理平台-01-maven 入门介绍 + Maven、Gradle、Ant、Ivy、Bazel 和 SBT 的详细对比表格
maven 包管理平台-02-windows 安装设置 + mac 安装设置
maven 包管理平台-03-maven project maven 项目的创建入门
maven 包管理平台-04-maven archetype 项目原型
maven 包管理平台-05-multi module 多模块
maven 包管理平台-06-常用技巧 实时更新快照/乱码问题/下载很慢/包依赖解决包冲突/如何导入本地 jar
maven 包管理平台-07-plugins 常见插件介绍
maven 包管理平台-08-nexus 自己搭建 maven 仓库
maven 插件

Maven 在其核心是一个插件执行框架;全部工作都由插件完成。
寻找要执行的特定目标吗?此页面列出了核心插件和其他插件。
有构建和陈诉插件:

  • 构建(Build) 插件将在构建过程中执行,它们应该在 POM 中的  元素中进行设置。
  • 陈诉(Reporting) 插件将在站点生成期间执行,它们应该在 POM 中的  元素中进行设置。因为陈诉插件的结果是生成站点的一部分,以是陈诉插件应该同时进行国际化和本地化。您可以阅读更多关于插件本地化的信息以及您可以如何帮助的内容。
Maven 插件
核心插件

这些插件对应于默认的核心阶段(即 clean,compile 等)。
它们也可能有多个目标。
compiler

编译 Java 源代码。
  1. <plugin>
  2.     <groupId>org.apache.maven.plugins</groupId>
  3.     <artifactId>maven-compiler-plugin</artifactId>
  4.     <version>${maven-compiler-plugin.version}</version>
  5.     <configuration>
  6.         <source>1.8</source>
  7.         <target>1.8</target>
  8.     </configuration>
  9. </plugin>
复制代码
surefire

在隔离的类加载器中运行 JUnit 单元测试。
  1. <plugin>
  2.     <groupId>org.apache.maven.plugins</groupId>
  3.     <artifactId>maven-surefire-plugin</artifactId>
  4.     <version>${maven-surefire-plugin.version}</version>
  5.     <configuration>
  6.         <skipTests>true</skipTests>
  7.         <testFailureIgnore>true</testFailureIgnore>
  8.     </configuration>
  9. </plugin>
复制代码
陈诉插件

生成陈诉的插件,在 POM 中设置为陈诉,并在站点生成生命周期下运行。
javadoc

为项目生成 Javadoc 文档。
  1. <plugin>
  2.     <groupId>org.apache.maven.plugins</groupId>
  3.     <artifactId>maven-javadoc-plugin</artifactId>
  4.     <version>2.9.1</version>
  5.     <configuration>
  6.         
  7.         <aggregate>true</aggregate>
  8.         
  9.         <reportOutputDirectory>../doc</reportOutputDirectory>
  10.         
  11.         <destDir>myapidocs</destDir>
  12.         
  13.         <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>
  14.         
  15.         <tags>
  16.             <tag>
  17.                
  18.                 <name>Description</name>
  19.                
  20.                 <placement>a</placement>
  21.                
  22.                 <head>用途</head>
  23.             </tag>
  24.         </tags>
  25.     </configuration>
  26. </plugin>
复制代码
其他

许多其他项目提供了它们自己的 Maven 插件。
tomcat7

运行 Apache Tomcat 容器以进行快速 Web 应用程序开发。
  1. <properties>
  2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3. </properties>
  4. <build>
  5.     <plugins>
  6.         <plugin>
  7.             <groupId>org.apache.tomcat.maven</groupId>
  8.             <artifactId>tomcat7-maven-plugin</artifactId>
  9.             <version>${plugin.tomcat.version}</version>
  10.             <configuration>
  11.                 <port>8081</port>
  12.                 <path>/</path>
  13.                 <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
  14.             </configuration>
  15.         </plugin>
  16.     </plugins>
  17. </build>
复制代码
Versions

versions-plugin zh_CN
  1. mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
复制代码

  • commit
  1. mvn versions:commit
复制代码

  • revert
  1. mvn versions:revert
复制代码
精确修改方法:
(1) 修改父类
  1. mvn versions:set -DgroupId=com.framework -DartifactId=framework* -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT
复制代码
(2) 修改子类
  1. mvn -N versions:update-child-modules
复制代码
Auto-Config

Auto-Config
简单案例
Import in maven
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  5.     <properties>
  6.         
  7.         <autoconfig-plugin-version>1.2</autoconfig-plugin-version>
  8.     </properties>
  9.     <build>
  10.         <plugins>
  11.             <plugin>
  12.                 <groupId>com.alibaba.citrus.tool</groupId>
  13.                 <artifactId>autoconfig-maven-plugin</artifactId>
  14.                 <version>${autoconfig-plugin-version}</version>
  15.                 <configuration>
  16.                     
  17.                     
  18.                     
  19.                 </configuration>
  20.                 <executions>
  21.                     <execution>
  22.                         <phase>package</phase>
  23.                         <goals>
  24.                             <goal>autoconfig</goal>
  25.                         </goals>
  26.                     </execution>
  27.                 </executions>
  28.             </plugin>
  29.         </plugins>
  30.     </build>
  31. </project>
复制代码
跳过执行
  1. $   mvn install –Dautoconfig.skip
复制代码

  • 想使用设置文件
(1) 直接将生成的设置文件 antx.properties 视为设置文件使用。放在本地。
(2) 打成war包之后可以自动属性替换掉。
1、 maven war struct:
  1. war-project(源目录结构)               -> war-project.war(目标目录结构)
  2. │  pom.xml
  3. └─src
  4.      └─main
  5.          ├─java
  6.          ├─resources                    -> /WEB-INF/classes
  7.          │      file1.xml                      file1.xml
  8.          │      file2.xml                      file2.xml
  9.          │
  10.          └─webapp                       -> /
  11.              ├─META-INF                 -> /META-INF
  12.              │  └─autoconf              -> /META-INF/autoconf
  13.              │        auto-config.xml          auto-config.xml
  14.              │
  15.              └─WEB-INF                  -> /WEB-INF
  16.                    web.xml                     web.xml
  17.                    file3.xml                   file3.xml
复制代码

  • /META-INF/autoconf 目任命来存放AutoConfig的描述文件,以及可选的模板文件。
  • auto-config.xml 是用来指导AutoConfig行为的关键描述文件。
2、 maven jar struct
  1. jar-project(源目录结构)               -> jar-project.jar(目标目录结构)
  2. │  pom.xml
  3. └─src
  4.      └─main
  5.          ├─java
  6.          └─resources                    -> /
  7.              │  file1.xml                      file1.xml
  8.              │  file2.xml                      file2.xml
  9.              │
  10.              └─META-INF                 -> /META-INF
  11.                  └─autoconf             -> /META-INF/autoconf
  12.                        auto-config.xml         auto-config.xml
复制代码
3、Common directory
  1. directory
  2. │  file1.xml
  3. │  file2.xml
  4. └─conf
  5.        auto-config.xml
复制代码
auto-config
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <config>
  3.     <group>
  4.         <property name="petstore.work"
  5.                     description="应用程序的工作目录" />
  6.         <property name="petstore.loggingRoot"
  7.                     defaultValue="${petstore.work}/logs"
  8.                     description="日志文件目录" />
  9.         <property name="petstore.upload"
  10.                     defaultValue="${petstore.work}/upload"
  11.                     description="上传文件的目录" />
  12.         <property name="petstore.loggingLevel"
  13.                     defaultValue="warn"
  14.                     description="日志文件级别">
  15.             <validator name="choice"
  16.                          choice="trace, debug, info, warn, error" />
  17.         </property>
  18.     </group>
  19.    
  20. </config>
复制代码
完备的properties
  1. <property
  2.     name="..."
  3.     [defaultValue="..."]
  4.     [description="..."]
  5.     [required="true|false"]
  6. >
  7.     <validator name="..." />
  8.     <validator name="..." />
  9.     ...
  10. </property>
复制代码
生成设置文件的指令
  1. [/code][size=5]auto-config 命令[/size]
  2. [code]$ autoconfig
  3. Detected system charset encoding: UTF-8
  4. If your can't read the following text, specify correct one like this:
  5.   autoconfig -c mycharset
  6. 使用方法:autoconfig [可选参数] [目录名|包文件名]
  7. 可选参数:
  8. -c,--charset                输入/输出编码字符集
  9. -d,--include-descriptors
  10.                              包含哪些配置描述文件,例如:conf/auto-config.xml,可使用*、**、?通配符,如有多项,用逗号分隔
  11. -D,--exclude-descriptors    排除哪些配置描述文件,可使用*、**、?通配符,如有多项,用逗号分隔
  12. -g,--gui                    图形用户界面(交互模式)
  13. -h,--help                   显示帮助信息
  14. -i,--interactive            交互模式:auto|on|off,默认为auto,无参数表示on
  15. -I,--non-interactive        非交互模式,相当于--interactive=off
  16. -n,--shared-props-name      共享的属性文件的名称
  17. -o,--output                 输出文件名或目录名
  18. -P,--exclude-packages       排除哪些打包文件,可使用*、**、?通配符,如有多项,用逗号分隔
  19. -p,--include-packages
  20.                              包含哪些打包文件,例如:target/*.war,可使用*、**、?通配符,如有多项,用逗号分隔
  21. -s,--shared-props           共享的属性文件URL列表,以逗号分隔
  22. -T,--type                   文件类型,例如:war, jar, ear等
  23. -t,--text                   文本用户界面(交互模式)
  24. -u,--userprop               用户属性文件
  25. -v,--verbose                显示更多信息
复制代码
可执行 jar


  • xml 引入
  1. <plugin>
  2.         <groupId>org.apache.maven.plugins</groupId>
  3.         <artifactId>maven-assembly-plugin</artifactId>
  4.         <version>2.5.5</version>
  5.         <configuration>
  6.                 <archive>
  7.                         <manifest>
  8.                                 <mainClass>com.xxg.Main</mainClass>
  9.                         </manifest>
  10.                 </archive>
  11.                 <descriptorRefs>
  12.                         <descriptorRef>jar-with-dependencies</descriptorRef>
  13.                 </descriptorRefs>
  14.         </configuration>
  15.         <executions>
  16.                 <execution>
  17.                         <id>make-assembly</id>
  18.                         <phase>package</phase>
  19.                         <goals>
  20.                                 <goal>single</goal>
  21.                         </goals>
  22.                 </execution>
  23.         </executions>
  24. </plugin>
复制代码

  • 命令行执行
  1. $   mvn package
复制代码
本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表