当前位置: 首页 > 知识库问答 >
问题:

如何在maven中执行多个ant目标

何玺
2023-03-14

是的,是的,这是一个XY类型的问题。(我想在不丢失任何信息的情况下更好地展示它。)

在我的项目中,当我试图在maven中执行ANT任务时,它给出了与本示例中相同的错误。我举了这个例子。

我尝试使用下面的< code>maven-antrun-plugin来执行多个ant目标。但是,它总是只执行下面的目标(当我没有提到依赖属性时)。当我使用它时,它给出以下异常:

Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (default) on project jibx-mvn-demo: An Ant BuildException has occured: Target "compile" does not exist in the project "maven-antrun-". It is used from target "myDAO". -> [Help 1]

啪.xml

    <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <phase>install</phase>
                    <configuration>
                        <target name="clean">
                            <echo>Clean up my working directory to be nice and sparkly</echo>
                        </target>
                        <target name="initDAO">
                            <echo>Initialize stuff for my DAO build</echo>
                            <echo>Maybe setup some properties?</echo>
                        </target>
                        <target name="makedir" depends="initDAO">
                            <echo>I need my directories for building.</echo>
                            <echo>But first, I need to setup stuff"</echo>
                        </target>
                        <target name="compile" depends="makedir">
                            <echo>I need to compile my dao source"</echo>
                            <echo>But first, I need to make the necessary directories</echo>
                        </target>
                        <target name="myDAO" depends="compile">
                            <echo>Here's where I package up my DAO</echo>
                            <echo>But I have to compile stuff before I can package it</echo>
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

这是什么原因呢?如何在maven中执行多个ant任务?

共有2个答案

惠洛华
2023-03-14

我们可以通过使用单独的构建来实现。xml文件

<target name="anytarget">
     <ant antfile="build.xml"/>
</target>
梁才
2023-03-14

在当前版本的Maven AntRun插件(1.8)中,答案不适用于我,我不知道如何构建。xml文件。

因此,在pom.xml中:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
            <id>download-files</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <ant antfile="build.xml">
                        <target name="go"/>
                    </ant>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

和build.xml文件:

<project name="Selenium" basedir=".">

    <target name="check-files">
        <available file="src/test/resources/firefox/firefox" property="firefox.exists"/>
    </target>

    <target name="download-firefox" depends="check-files" unless="firefox.exists">
        <!-- download Firefox for selenium -->
        <get src="https://ftp.mozilla.org/pub/firefox/releases/57.0/linux-x86_64/pt-BR/firefox-57.0.tar.bz2"
             dest="src/test/resources"
             verbose="false"
             usetimestamp="true"/>
        <bunzip2 src="src/test/resources/firefox-57.0.tar.bz2"
                 dest="src/test/resources"/>
        <untar src="src/test/resources/firefox-57.0.tar"
               dest="src/test/resources"/>
        <chmod file="src/test/resources/firefox/firefox/" perm="700"/>
    </target>

    <target name="go" depends="check-files, download-firefox"/>

</project>

上述示例执行以下任务:

  1. 检查src/test/resources上是否存在firefox
  2. 如果不存在:
    1. 下载firefox
    2. bunzip2firefox.bzip2文件
    3. untarfirefox tar文件
    4. 使用chmod命令调整文件夹权限

    完美的作品!

 类似资料:
  • 问题内容: 我有一个目前正在转换为Maven的Ant构建。但是,Ant构建有2个构建目标-一个构建整个应用程序,一个从这些文件中的一些(仅少数)构建JAR。在Ant中,很容易有多个构建目标来处理此问题,但是我正在尝试确定在Maven中处理此问题的最佳方法。 我可以将文件的子集拆分到另一个项目中,它将拥有自己的POM。然后,第一个项目可能依赖于此项目。但是,由于文件的子集非常小(少于10个),因此为

  • 在我的maven构建中,我必须按照下面提到的特定顺序执行以下步骤: exec-maven-plugin maven-antrun-plugin exec-maven-plugin maven-antrun-plugin maven-remote-resources-plugin,jaxb2-maven-plugin maven-javadoc-plugin exec-maven-plugin 在p

  • 问题内容: 是否可以在Ant脚本中调用或执行Maven目标? 假设我有一个名为“ distribute”的蚂蚁目标,在其中我需要从另一个pom.xml调用一个Maven“编译”目标。 问题答案: 使用从Windows CLI运行Maven的exec任务的使用示例为:

  • 我是maven的新手,我想同时执行2个java文件。我在StackOverflow中读了几篇文章,因为我对maven的了解有限,所以我不明白如何做到这一点。我在这里附加了我的pom.xml文件,我在mac终端中使用的命令行是: mvn编译执行:Java-dexec . main class = " org . parallel . parse thread 1 " 我有另一个名为ParseThre

  • 我有一个gradle任务,它有一个dependsOn,然后需要执行一个名为runcukes的Ant任务。然而,Gradle不会调用ant任务: 使用-d运行gradle会显示gradle无法识别Ant目标runcukes:

  • 现在反应堆的建造顺序是 另外module2依赖于module1和module3依赖于module2,现在为了解释依赖关系,我使用${project.version}指定module2 pom中的module1版本,类似地,我使用module3 pom中的${project.version}引用module2。现在快照作业成功执行,但是当我尝试使用聚合器pom(它是所有模块的父pom)释放所有模块时