使用Maven执行build.xml

15

是否可以使用Maven执行build.xml脚本?

这个脚本可以检出所有我的项目和子项目,我已经习惯了使用Maven,以前并没有太多使用ant的经验,但我知道ant可以与Maven一起使用。所以我的问题是:如何做到呢?

2个回答

10

我真的不喜欢这种方法(要么使用Ant,要么使用Maven,但不要混用),但你可以使用外部build.xmlMaven AntRun Plugin:

<project>
  ...
  <build>
    <plugins>
      ...
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <configuration>
          <tasks>
            <taskdef resource="net/sf/antcontrib/antcontrib.properties"
              classpathref="maven.plugin.classpath" />
            <ant antfile="${basedir}/build.xml">
              <target name="test"/>
            </ant>
          </tasks>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>ant-contrib</artifactId>
            <version>1.0b3</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
</project>

然后运行mvn antrun:run(或者将配置放在execution中,如果你想将AntRun插件绑定到生命周期阶段,请参考用法页面)。

更新:如果您正在使用来自ant-contrib的东西,则需要将其声明为插件的依赖项。我已更新插件配置以反映此更改。另请注意我添加的taskdef元素(我不确定您是否需要classpathref属性)。


${basedir} 是哪个位置?在 pom.xml 旁边还是其他地方? - Gandalf StormCrow
@Gandalf 是的,${basedir} 表示包含 pom.xml 文件的目录。 - Pascal Thivent
我尝试使用antrun插件的v1.7版本,现在似乎目标是运行,例如:mvn antrun:run - Tom Saleeba

0

你可以通过Maven-Ant插件执行Ant脚本,但为什么需要Ant来检出你的项目?难道你没有将子项目组织到同一棵树中吗?


1
我将ant目标放置在tasks标签之间,但是出现了以下错误:问题:无法创建任务或类型目标 原因:名称未定义。 - Gandalf StormCrow
@khmarbaise 你没有把子项目组织到同一棵树上吗 - 你是什么意思? - Gandalf StormCrow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接