这篇文章主要讲解了“maven的exec-maven-plugin插件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“maven的exec-maven-plugin插件怎么使用”吧!
公司主营业务:网站制作、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出怀来免费做网站回馈大家。
maven的exec-maven-plugin插件主要是用来执行可执行jar包命令的插件,很多工具提供命令行式的交互,例如mybatis-generator,每一次运行都会敲很长的命令,很麻烦。
还有的时候,你希望提供一个3方包给比人使用,为了让别人能够通过非常简单的命令就可以运行程序,就可以使用exec-maven-plugin插件。
当然也可以是脚本的方式来实现,但是脚本的通用性不是很好,你要提供run.bat,run.sh等脚本。通过exec-maven-plugin就可以避免这样的问题。
exec-maven-plugin插件有2个目录(goal),一个是java一个是exec。这里简单解释一下maven的goal,可以把maven的goal看做是一个特定的功能,一个maven插件可能有很多功能,一个功能就是一个goal,maven还有生命周期的概念,maven有3套生命周期,分别是clean,default,site。每一个生命周期有包含一下阶段(phase),可以把每一个阶段看做一个流程。参加后面的maven生命周期。例如执行下面的2个命令:
mvn clean package mvn clean test
上面的2个命令都包含了2个生命周期,clean和default生命周期。clean会执行clean生命周期的pre-clean和clean阶段,mvn clean package命令会从default生命周期会从validate执行到package阶段,mvn clean test命令会从default生命周期的validate阶段执行到package阶段。
插件就是把goal绑定到生命指定阶段的上执行的。就是maven在执行相应阶段的时候会检查有那些插件的goal绑定到这个阶段上的,然后执行这些goal。
如果对这些知识有疑惑,强烈建议阅读《maven实战》。
public class App { public static void main( String[] args ) { for(String arg : args){ System.out.println(arg); } } }
上面的代码非常简单,打印main方法参数。
4.0.0 cn.freemethod plugin 0.0.1-SNAPSHOT jar plugin http://maven.apache.org UTF-8 1.2.1 junit junit 4.9 test org.codehaus.mojo exec-maven-plugin ${exec_maven_plugin_version} test java cn.freemethod.plugin.App arg0 arg1
看上面的配置,我们把exec-maven-plugin 插件的java模板(goal)绑定到了default生命周期的test阶段上。所以我们只需要执行下面的命令就可以了:
mvn test
import java.util.ArrayList; import java.util.List; public class Exec { public static void main(String[] args) { System.out.println(System.getProperty("systemProperty1")); System.out.println(System.getProperty("systemProperty2")); for(String arg:args){ System.out.println(arg); } testGcTypeLog(); } public static void testGcTypeLog(){ List