[JAVA] Comment exécuter Ant dans Gradle

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.

Importer build.xml

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

Lorsque le nom cible de Ant et le nom de tâche de Gradle sont dupliqués

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

Méthode de définition de la propriété

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

Résumé

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.

référence

Gradle User Guide Gradle (build.gradle) Introduction à la lecture et à l'écriture

Merci de votre collaboration.

Recommended Posts

Comment exécuter Ant dans Gradle
Comment exécuter une tâche djUnit dans Ant
Comment exécuter JUnit dans Eclipse
Comment filtrer JUnit Test dans Gradle
Comment utiliser Gradle
Comment utiliser Lombok au printemps
Comment trouver May'n dans XPath
Comment masquer la barre de défilement dans WebView
Comment itérer indéfiniment en Ruby
Comment maîtriser la programmation en 3 mois
Pour exécuter JavaFX sur Docker
Comment apprendre JAVA en 7 jours
Comment obtenir des paramètres dans Spark
Comment installer Bootstrap dans Ruby
Comment utiliser InjectorHolder dans OpenAM
Comment changer dynamiquement les JDK lors de la construction de Java avec Gradle
Comment installer jQuery dans Rails 6
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Comment définir Lombok dans Eclipse
Comment concaténer des chaînes avec Java
Comment installer Swiper in Rails
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment changer le nom de l'application dans les rails
Comment compiler Java avec VsCode & Ant
Comment utiliser le volume nommé dans docker-compose.yml
Comment insérer une vidéo dans Rails
Comment normaliser le pied de page d'en-tête dans Thymeleaf
Comment inclure Spring Tool dans Eclipse 4.6.3?
Comment ajouter un fichier jar dans ScalaIDE
Comment faire une conversion de base en Java
Comment avoir des paramètres dans la méthode link_to
Comment utiliser Docker dans VSCode DevContainer
Comment utiliser MySQL dans le didacticiel Rails
Comment fixer la date système dans JUnit
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
[rails] Comment configurer le routage dans les ressources
N'acceptez pas System.in en cours de progression
Comment obtenir la date avec Java
Comment implémenter la fonctionnalité de classement dans Rails
Comment utiliser les variables d'environnement dans RubyOnRails
Comment implémenter le traitement asynchrone dans Outsystems
Comment publier une bibliothèque dans jCenter
Comment spécifier l'attribut id dans JSF
Comprendre en 5 minutes !! Comment utiliser Docker
Comment écraser les données Firebase avec Swift
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment exécuter Blazor (C #) avec Docker