你需要一个工具来帮助你理解一些Maven使用的模型,以及某个插件有什么可用的目标。Maven Help插件能让你列出活动的Maven Profile,显示一个实际POM(effective POM),打印实际settings(effective settings),或者列出Maven插件的属性。 Maven Help 插件有四个目标。前三个目标是—— active-profiles, effective-pom 和effective-settings —— 描述一个特定的项目,它们必须在项目的目录下运行。 最后一个目标—— describe ——相对比较复杂,展示某个插件或者插件目标的相关信息。
help:active-profiles 列出当前构建中活动的Profile(项目的,用户的,全局的)。
help:effective-pom 显示当前构建的实际POM,包含活动的Profile。
help:effective-settings 打印出项目的实际settings, 包括从全局的settings和用户级别settings继承的配置。
help:describe 描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件的 groupId 和 artifactId。
当你开始使用Maven。
你会试图获得Maven插件的信息:插件如何工作?配置参数是什么?目标是什么? 你会经常使用 help:describe 目标来获取这些信息。通过 plugin 参数你可以指定你想要研究哪个插件,你可以传入插件的前缀(如help 插件就是 maven-help-plugin),或者可以是 groupId:artifact[:version]这里 version 是可选的。
比如, 下面的命令使用 help 插件的目标来输出Maven Help 插件的信息。
mvn help:describe -Dplugin=help
通过设置plugin参数来运行describe目标,输出为该插件的Maven坐标,目标前缀,和该插件的一个简要介绍。如果你想要 Help 插件输出完整的带有参数的目标列表,只要运行带有参数full的help:describe 目标就可以了,
mvn help:describe -Dplugin=help -Dfull
该选项能让你查看插件所有的目标及相关参数。但是有时候这些信息显得太多了。这时候你可以获取单个目标的信息,设置 mojo 参数和参数。下面的命令列出了Compiler 插件的compile目标的所有信息(在maven里一个插件目标也被认为是一个mojo)
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull
mvn dependency:copy-dependencies
mvn dependency:copy-dependencies -DoutputDirectory=lib
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile
[...]
org.apache.maven.plugins
maven-surefire-plugin
true
[...]
这个表达式可以从命令行通过 -D 参数设置。mvn test -Dmaven.test.failure.ignore=true
[...]
org.apache.maven.plugins
maven-surefire-plugin
true
[...]
Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件。 你可以使用 Maven Assembly 插件
以你希望的任何形式来装配输出,只需定义一个自定义的装配描述符,即可生成一个可分发的JAR文件,该文件包含
了项目的二进制文件和所有的依赖。
要配置 Maven Assembly 插件, 需要在 pom.xml 中的build 配置中添加如下的 plugin 配置。如下图所示
[...]
maven-assembly-plugin
jar-with-dependencies
[...]
添加好这些配置以后,你可以通过运行 mvn assembly:assembly来构建这个装配。
将工程依赖的jar包和工程都打成一个jar打包
在 target/***-1.0-jar-with-dependencies.jar 装配好之后, 我们可以在命令行重新运行 Main 类
java -cp **-1.0-jar-with-dependencies.jar *.*.Main
windows平台默认使用GBK编码,如果工程编码为utf8,也需要在compiler插件中指出,否则按GBK编码,也会出问题
org.apache.maven.plugins
maven-compiler-plugin
3.3
1.7
UTF8
${user.home}/asssd.properties
src/main/resources
true
**/*
src/main/java
**.xml
运行打包命令时,将src/main/resources中的所有文件和src/main/java目录下的所有.xml文件打到jar包中。