拓展阅读
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 源代码。- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>${maven-compiler-plugin.version}</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
复制代码 surefire
在隔离的类加载器中运行 JUnit 单元测试。- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>${maven-surefire-plugin.version}</version>
- <configuration>
- <skipTests>true</skipTests>
- <testFailureIgnore>true</testFailureIgnore>
- </configuration>
- </plugin>
复制代码 陈诉插件
生成陈诉的插件,在 POM 中设置为陈诉,并在站点生成生命周期下运行。
javadoc
为项目生成 Javadoc 文档。- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.9.1</version>
- <configuration>
-
- <aggregate>true</aggregate>
-
- <reportOutputDirectory>../doc</reportOutputDirectory>
-
- <destDir>myapidocs</destDir>
-
- <javadocExecutable>${java.home}/../bin/javadoc</javadocExecutable>
-
- <tags>
- <tag>
-
- <name>Description</name>
-
- <placement>a</placement>
-
- <head>用途</head>
- </tag>
- </tags>
- </configuration>
- </plugin>
复制代码 其他
许多其他项目提供了它们自己的 Maven 插件。
tomcat7
运行 Apache Tomcat 容器以进行快速 Web 应用程序开发。- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.tomcat.maven</groupId>
- <artifactId>tomcat7-maven-plugin</artifactId>
- <version>${plugin.tomcat.version}</version>
- <configuration>
- <port>8081</port>
- <path>/</path>
- <uriEncoding>${project.build.sourceEncoding}</uriEncoding>
- </configuration>
- </plugin>
- </plugins>
- </build>
复制代码 Versions
versions-plugin zh_CN
- mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
复制代码 精确修改方法:
(1) 修改父类- mvn versions:set -DgroupId=com.framework -DartifactId=framework* -DoldVersion=* -DnewVersion=1.0.2-SNAPSHOT
复制代码 (2) 修改子类- mvn -N versions:update-child-modules
复制代码 Auto-Config
Auto-Config
简单案例
Import in maven- <?xml version="1.0" encoding="UTF-8"?>
- <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">
- <properties>
-
- <autoconfig-plugin-version>1.2</autoconfig-plugin-version>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>com.alibaba.citrus.tool</groupId>
- <artifactId>autoconfig-maven-plugin</artifactId>
- <version>${autoconfig-plugin-version}</version>
- <configuration>
-
-
-
- </configuration>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>autoconfig</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
复制代码 跳过执行- $ mvn install –Dautoconfig.skip
复制代码 (1) 直接将生成的设置文件 antx.properties 视为设置文件使用。放在本地。
(2) 打成war包之后可以自动属性替换掉。
1、 maven war struct:- war-project(源目录结构) -> war-project.war(目标目录结构)
- │ pom.xml
- │
- └─src
- └─main
- ├─java
- ├─resources -> /WEB-INF/classes
- │ file1.xml file1.xml
- │ file2.xml file2.xml
- │
- └─webapp -> /
- ├─META-INF -> /META-INF
- │ └─autoconf -> /META-INF/autoconf
- │ auto-config.xml auto-config.xml
- │
- └─WEB-INF -> /WEB-INF
- web.xml web.xml
- file3.xml file3.xml
复制代码
- /META-INF/autoconf 目任命来存放AutoConfig的描述文件,以及可选的模板文件。
- auto-config.xml 是用来指导AutoConfig行为的关键描述文件。
2、 maven jar struct- jar-project(源目录结构) -> jar-project.jar(目标目录结构)
- │ pom.xml
- │
- └─src
- └─main
- ├─java
- └─resources -> /
- │ file1.xml file1.xml
- │ file2.xml file2.xml
- │
- └─META-INF -> /META-INF
- └─autoconf -> /META-INF/autoconf
- auto-config.xml auto-config.xml
复制代码 3、Common directory- directory
- │ file1.xml
- │ file2.xml
- │
- └─conf
- auto-config.xml
复制代码 auto-config
- <?xml version="1.0" encoding="UTF-8"?>
- <config>
- <group>
- <property name="petstore.work"
- description="应用程序的工作目录" />
- <property name="petstore.loggingRoot"
- defaultValue="${petstore.work}/logs"
- description="日志文件目录" />
- <property name="petstore.upload"
- defaultValue="${petstore.work}/upload"
- description="上传文件的目录" />
- <property name="petstore.loggingLevel"
- defaultValue="warn"
- description="日志文件级别">
- <validator name="choice"
- choice="trace, debug, info, warn, error" />
- </property>
- </group>
-
- </config>
复制代码 完备的properties- <property
- name="..."
- [defaultValue="..."]
- [description="..."]
- [required="true|false"]
- >
- <validator name="..." />
- <validator name="..." />
- ...
- </property>
复制代码 生成设置文件的指令- [/code][size=5]auto-config 命令[/size]
- [code]$ autoconfig
- Detected system charset encoding: UTF-8
- If your can't read the following text, specify correct one like this:
- autoconfig -c mycharset
- 使用方法:autoconfig [可选参数] [目录名|包文件名]
- 可选参数:
- -c,--charset 输入/输出编码字符集
- -d,--include-descriptors
- 包含哪些配置描述文件,例如:conf/auto-config.xml,可使用*、**、?通配符,如有多项,用逗号分隔
- -D,--exclude-descriptors 排除哪些配置描述文件,可使用*、**、?通配符,如有多项,用逗号分隔
- -g,--gui 图形用户界面(交互模式)
- -h,--help 显示帮助信息
- -i,--interactive 交互模式:auto|on|off,默认为auto,无参数表示on
- -I,--non-interactive 非交互模式,相当于--interactive=off
- -n,--shared-props-name 共享的属性文件的名称
- -o,--output 输出文件名或目录名
- -P,--exclude-packages 排除哪些打包文件,可使用*、**、?通配符,如有多项,用逗号分隔
- -p,--include-packages
- 包含哪些打包文件,例如:target/*.war,可使用*、**、?通配符,如有多项,用逗号分隔
- -s,--shared-props 共享的属性文件URL列表,以逗号分隔
- -T,--type 文件类型,例如:war, jar, ear等
- -t,--text 文本用户界面(交互模式)
- -u,--userprop 用户属性文件
- -v,--verbose 显示更多信息
复制代码 可执行 jar
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.5.5</version>
- <configuration>
- <archive>
- <manifest>
- <mainClass>com.xxg.Main</mainClass>
- </manifest>
- </archive>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
复制代码本文由博客一文多发平台 OpenWrite 发布!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |