Vous souhaiterez peut-être exécuter la cible du build.xml d'Ant à partir de Gradle, par exemple lorsque vous avez déjà des ressources Ant dans un projet qui utilise Java.
J'ai trouvé comment faire cela, alors je vais le préciser avec un mémo.
Utilisez la méthode ant.importBuild () pour importer.
▼ Préparez une cible à faire écho dans build.xml
build.xml
<?xml version="1.0" encoding="utf-8" ?>
<project name="antsample" default="target01">
<target name="target01">
<echo message="message01" />
</target>
</project>
▼ Importez pour que build.xml puisse être utilisé du côté build.gradle
build.gradle
ant.importBuild 'build.xml'
▼ La cible définie dans build.xml peut être utilisée.
$ gradle tasks --all
~ abrégé ~
Other tasks
-----------
prepareKotlinBuildScriptModel
target01
$ gradle target01
> Task :target01
[ant:echo] message01
BUILD SUCCESSFUL in 846ms
1 actionable task: 1 executed
Notez qu'une erreur se produira si le nom de tâche fourni dans Gradle est dupliqué avec target sur build.xml. Par conséquent, il semble bon de pouvoir exécuter la cible de fourmi avec fourmi. [Nom de la cible] comme indiqué ci-dessous.
build.gradle
ant.importBuild('build.xml') {
antTaskName -> "ant.${antTaskName}".toString()
}
$ gradle tasks --all
~ abrégé ~
Other tasks
-----------
ant.build
prepareKotlinBuildScriptModel
Vous pouvez spécifier un argument avec -D lors de l'exécution de Ant, mais vous pouvez faire de même avec Gradle.
▼ Définir la propriété du côté build.xml
build.xml
<?xml version="1.0" encoding="utf-8" ?>
<project name="antsample" default="target01">
<property name="message" value="default message"/>
<target name="target01">
<echo message="${message}" />
</target>
</project>
▼ Le côté Gradle n'a besoin que d'importer build.xml
build.gradle
ant.importBuild 'build.xml'
▼ J'ai pu spécifier un message et un écho
$ gradle target01 -Dmessage='message param'
> Task :target01
[ant:echo] message param
BUILD SUCCESSFUL in 726ms
1 actionable task: 1 executed
Je devais juste exécuter Ant de Gradle avec les arguments, mais j'ai eu beaucoup de problèmes. Au début, j'ai utilisé ant.properties côté gradle.build pour passer des arguments, mais j'ai pu exécuter la cible directement depuis la ligne de commande avec "-D" sans l'utiliser, donc c'était assez rafraîchissant.
Gradle et Groovy sont intéressants à toucher, donc je posterai si j'ai appris à nouveau.
Gradle User Guide Gradle (build.gradle) Introduction à la lecture et à l'écriture
Merci de votre collaboration.
Recommended Posts