[英]How to execute multiple ant targets in maven
Yes, yes, this is a XY type of problem. 是的,是的,这是XY类型的问题。 (I wanted to present it nicer without loosing any information)
(我想在不丢失任何信息的情况下更好地展示它)
In my project when I tried to execute the ANT tasks in maven it gives me the same error that I have in this sample. 在我的项目中,当我尝试在maven中执行ANT任务时,它给了我与此示例中相同的错误。 I took this example from here .
我从这里拿了这个例子。
I tried to execute the multiple ant targets using the maven-antrun-plugin
as below. 我尝试使用
maven-antrun-plugin
执行多个ant目标,如下所示。 But, it always executes the below most target only (when I don't mention depends attibute). 但是,它总是只执行以下最大目标(当我不提及取决于属性时)。 When I use it, it gives following exception :
当我使用它时,它给出以下异常:
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]
pom.xml 的pom.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>
What is the reason for this? 这是什么原因? How can I execute multiple ant tasks in maven?
如何在maven中执行多个ant任务?
The answer not work for me in the current version of Maven AntRun plugin (1.8) and I miss how would be the build.xml file. 在当前版本的Maven AntRun插件(1.8)中,答案对我不起作用,我想念build.xml文件是怎么回事。
So, in the pom.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>
And the build.xml file: 和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>
The above example execute the follow tasks: 上面的示例执行以下任务:
src/test/resources
; src/test/resources
上是否存在firefox; bunzip2
firefox bzip2 file; bunzip2
firefox bzip2文件; untar
the firefox tar file; untar
firefox tar文件; chmod
command. chmod
命令调整文件夹权限。 Works perfect! 作品完美!
We can do it by using a seperate build.xml file 我们可以使用单独的build.xml文件来完成它
<target name="anytarget">
<ant antfile="build.xml"/>
</target>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.