1

我有一个 Maven ant 插件,它捆绑了一个 Ant 任务库。其中之一有很多 CI 任务。

我有插件工作,可以通过运行来完成任务

mvn -U ci:options

这将为不同的操作打开一个菜单。

我遇到的问题是我需要在执行任务之前解决 pom 中的依赖关系。

从阅读开始,我会认为我可以添加

<execution>
    <goal>dependency:unpack-dependencies</goal>
</execution>

到定义 mojo 的 pluginMetaData xml 文件,虽然这似乎没有做任何事情

ci.mojos.xml

<pluginMetadata 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/xsd/plugin-metadata-1.0.0.xsd">
<mojos>
    <mojo>
        <!-- target name to call in ant script -->
        <call>run</call>
        <!-- mojo goal name -->
        <goal>options</goal>
        <execution>
            <goal>dependency:unpack-dependencies</goal>
        </execution>
        <parameters>
            <parameter>
                <name>artifactId</name> 
                <property>artifactId</property> 
                <required>true</required> 
                <readonly>true</readonly>
                <type>java.lang.String</type>
                <defaultValue>${project.artifactId}</defaultValue>
                <description>Project Artifact Id</description>
            </parameter>
  ....

ci.build.xml

    <property name="project.home" location="."/>
    <property name="target.dir"       value="${project.home}/target"/>
    <property name="build.dir"        value="${target.dir}/build"/>
    <property name="dependency.dir"   value="${target.dir}/dependency"/>

    <!-- Add contrib to the classpath -->
    <taskdef resource="net/sf/antcontrib/antlib.xml"/>

    <!-- Include ant utils from the shared resource -->
    <include file="${dependency.dir}/shared_ant/build.xml"/>

    <!-- Continuous Integration Options -->
    <target name="run" description="Continuous Integration Options">        
          <ci.options/>
    </target>
</project>

非常感谢任何帮助。

詹姆士

4

0 回答 0