Utiliser antcontrib & lt; if & gt; tâche via maven-antrun-plugin
Mon projet java maven utilise le maven-antrun-plugin pour exécuter une deploy.xml script ant qui déploie mon application. L'deploy.xml utilise la <if>
tâche et ce qui semble être à l'origine du problème;
[INFO] de l'Exécution des tâches
[taskdef] n'a pas Pu charger les définitions de ressource net/sf/antcontrib/antlib.xml. Il n'a pas pu être trouvé.déployer:
[INFO] ------------------------------------------------------------------------
[ERREUR] ERREUR DE CONSTRUCTION
[INFO] ------------------------------------------------------------------------
[INFO] Une Fourmi BuildException a eu lieu: L'erreur suivante s'est produite lors de l'exécution de cette ligne:
E:\My_Workspace\xxxxxx\xxxxxx\xxxxxxx\deploy.xml:24: Problème: impossible de créer une tâche ou un type si
Cause: Le nom est indéfini.
Action: Vérifiez l'orthographe.
Action: Vérifiez que toutes les tâches personnalisées/types ont été déclarées.
Action: Vérifiez que tous les <presetdef>/<macrodef> les déclarations ont eu lieu.
Ici est la antrun plugin config de mon pom;
<plugin>
<inherited>false</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>remote-deploy</id>
<phase>install</phase>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath"/>
<property name="compile_classpath" refid="maven.compile.classpath" />
<property name="runtime_classpath" refid="maven.runtime.classpath" />
<property name="plugin_classpath" refid="maven.plugin.classpath" />
<echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
<ant antfile="${basedir}/deploy.xml">
<target name="deploy" />
</ant>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-jsch</artifactId>
<version>1.7.1</version>
</dependency>
</dependencies>
</plugin>
.. et voici la partie de mon deploy.xml;
<target name="deploy" if="deploy">
<if> <!-- line 24 -->
<and>
Pourquoi je regarde dans mon repo maven je peux voir ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar
et quand je regarde à l'intérieur du pot, je peux voir net/sf/antcontrib/antcontrib.properties
donc pas de problème là.
Quand j'ai vérifier les valeurs de maven.compile.classpath
maven.compile.classpath
et maven.compile.classpath
je ne vois aucune référence à antcontrib
cela pourrait être le problème? Pourquoi n'ont-ils pas apparaître lorsque antcontrib
est définie comme une dépendance?
source d'informationauteur Qwerky
Vous devez vous connecter pour publier un commentaire.
Je pense que ce n'est pas une très bonne idée d'ajouter ant pour compiler classpath pour exécuter maven plugin.
J'utilise Maven 3.0.4 et il a travaillé en spécifiant d'espace de noms pour ant-contrib balises, par exemple:
Mon
maven-antrun-plugin
dépendances:OK, je l'ai résolu.
Déplaçant les dépendances de la
<build><plugin>
tag et les mettre avec les autres dépendances du projet semble avoir fait le tour.J'ai trouvé que vous devez inclure l'ant-contrib de dépendance à l'intérieur du plugin qui va permettre la taskdef pour trouver antcontrib.propriétés
une autre solution: garder le ant-contrib-1.0b3.jar pour un chemin d'accès, puis le définir comme ce
puis
J'ai mis plein d'exemple de code ici que vous pouvez télécharger https://www.surasint.com/run-ant-with-if-from-maven/