栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在我的Maven插件运行之前,如何执行一组目标?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在我的Maven插件运行之前,如何执行一组目标?

您可以通过定义自定义生命周期并在通过

execute
注释执行Mojo之前调用该生命周期来做到这一点。

在您的Mojo中,在Javadoc中声明要执行的生命周期:

public class MyMojo extends AbstractMojo {...

然后在src / main / resources / meta-INF / maven / lifecycle.xml中定义自定义生命周期。

生命周期有点像plexus的components.xml,但是允许您为这些目标指定配置。

请注意,语法与pom中的插件配置略有不同。您可以使用:作为分隔符,而不是指定单独的groupId,artifactId和version元素来定义目标,否则它与pom中插件配置的执行元素在很大程度上是相同的表示法。您甚至可以在lifecycle.xml中使用某些属性(尽管可能并非所有属性都受支持,但我需要检查一下)。

以下示例在流程资源阶段使用不同的配置两次调用了依赖插件:

<lifecycles>  <lifecycle>    <id>download-dependencies</id>    <phases>      <phase>        <id>process-resources</id>        <executions>          <execution> <goals>   <goal>     org.apache.maven.plugins:maven-dependency-plugin:copy-dependencies   </goal> </goals> <configuration>   <includeScope>compile</includeScope>   <includeTypes>war</includeTypes>   <overWrite>true</overWrite>   <outputDirectory>     ${project.build.outputDirectory}/wars   </outputDirectory> </configuration>          </execution>          <execution> <goals>   <goal>     org.apache.maven.plugins:maven-dependency-plugin:copy-dependencies   </goal> </goals> <configuration>   <includeScope>compile</includeScope>   <includeTypes>jar</includeTypes>   <overWrite>true</overWrite>   <outputDirectory>     ${project.build.outputDirectory}/jars   </outputDirectory> </configuration>          </execution>        </executions>      </phase>    </phases>  </lifecycle></lifecycles>

通过这种方法,在

process-resources
派生的生命周期阶段,每个配置将对依赖插件进行一次调用(所有插件都在Mojo中定义的执行中发生)。

在lifecycle.xml中,您可以定义生命周期的多个阶段,以及每个阶段的多个执行。可用阶段在Maven生命周期中定义。

您可以在Maven书籍的“ 创建自定义生命周期”部分中找到有关生命周期的更多信息。它没有给出允许的全部清单。我知道的唯一其他参考来自Maven 2
alpha
,所以可能不是最新的



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号