在maven 中调用shell 命令

复制代码
 1 <build>
 2         <plugins>
 3             <plugin>
 4                 <artifactId>exec-maven-plugin</artifactId>
 5                 <groupId>org.codehaus.mojo</groupId>
 6                 <executions>
 7                     <execution>
 8                         <id>uncompress</id>
 9                         <phase>install</phase>
10                         <goals>
11                             <goal>exec</goal>
12                         </goals>
13                         <configuration>
14                             <executable>${basedir}/uncompress.sh</executable>
15                         </configuration>
16                     </execution>
17                 </executions>
18             </plugin>
19         </plugins>
20     </build>
复制代码

1. 这里需要理解maven中几个概念

a.maven的生命周期

  maven的生命周期主要有3套,分别是clean、default、site,clean主要用来清理项目,default用来构建项目,site用来建立项目站点。每个生命周期又包含一些阶段,这里就不列出了。

 当我们在命令行中执行mvn clean install时,该命令调用了clean生命周期的clean阶段和default生命周期的install阶段

b.插件绑定

maven的核心仅仅定义了抽象的生命周期,具体的任务交给插件来完成,而maven的生命周期与插件互相绑定,具体而言,应该是生命周期的阶段与插件的目标互相绑定,以完成某个具体的构建任务

现在来看我们上面的例子,我们在第10行开始定义了这个插件的目标,并且在第9行指定了default生命周期的install阶段,这里的意思就是说在default生命周期的install阶段,我们将执行插件的exec目标,也就是执行我们在14行指定的脚本。

生命周期的某一个阶段可以绑定很多插件的目标,这些目标的执行顺序按照定义的顺序来执行

 

一些属性

${basedir}表示项目根目录,即包含pom.xml文件的目录

 

posted @   feiling  阅读(10662)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
点击右上角即可分享
微信分享提示