IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Maven Java Discussion :

[MAVEN - ANT] Accés aux properties de MAVEN dans un fichier build.xml d'ANT


Sujet :

Maven Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut [MAVEN - ANT] Accés aux properties de MAVEN dans un fichier build.xml d'ANT
    Bonjour,

    Tout comme présenté dans le titre de ce post, j'aimerai savoir si il existe une façon d'accéder aux propriétés d'un POM à partir d'un fichier build.xml d'ANT.

    J'utilise le plugin AntRun et accède à certaines propriétés comme le classpath de compilation utilisé par Maven, mais je n'arrive pas à importer d'autres propriétés...

    Voici le POM que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.logic.silogisme.pidi.ws.serveur</groupId>
    	<artifactId>serveur</artifactId>
    	<name>WebService Serveur</name>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    	<parent>
    		<groupId>com.logic.silogisme.pidi.ws.serveur</groupId>
    		<artifactId>pom-serveur</artifactId>
    		<version>0.0.1-SNAPSHOT</version>
    	</parent>
    	<dependencies>
    		<dependency>
    			<groupId>axis</groupId>
    			<artifactId>axis</artifactId>
    			<version>1.4</version>
    		</dependency>
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<version>5.1.6</version>
    		</dependency>
    		<dependency>
    			<groupId>log4j</groupId>
    			<artifactId>log4j</artifactId>
    			<version>1.2.8</version>
    		</dependency>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.5</version>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-ear-plugin</artifactId>
    				<configuration>
    				</configuration>
    			</plugin>
     
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-antrun-plugin</artifactId>
    				<version>1.3</version>
    				<executions>
    					<execution>
    						<id>compile</id>
    						<phase>compile</phase>
    						<configuration>
    							<tasks>
    								<!--
    									<property name="compile_classpath"
    									refid="maven.compile.classpath" />
    								-->
    								<property name="maven.compile.classpath" refid="maven.compile.classpath" />
    								<property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
    								<property name="maven.test.classpath" refid="maven.test.classpath" />
    								<property name="basedir" refid = "basedir" /> <!-- Ne fonctionne pas -->
    								<ant antfile="${basedir}/build.xml">
    									<target name="test" />
    									<target name="init" />
    									<target name="build" />
    								</ant>
    							</tasks>
    						</configuration>
    						<goals>
    							<goal>run</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    		<pluginManagement>
    			<plugins>
    				<plugin>
    					<groupId>org.apache.maven.plugins</groupId>
    					<artifactId>maven-antrun-plugin</artifactId>
    					<version>1.3</version>
    				</plugin>
     
    				<plugin>
    					<groupId>org.apache.maven.plugins</groupId>
    					<artifactId>maven-compiler-plugin</artifactId>
    					<configuration>
    						<source>1.6</source>
    						<target>1.6</target>
    					</configuration>
    				</plugin>
    			</plugins>
    		</pluginManagement>
    	</build>
    </project>

    Merci d'avance pour votre réponse.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    Je me réponds à moi-même.

    Visiblement les properties déclarées dans le pom ne peuvent pas se propager dans le build.xml. Il s'agirait ici d'une évolution à apporter sur le plugin AntRun

    Ci-joint le lien JIRA : http://jira.codehaus.org/browse/MANTRUN-40

    Ceci pourrait être contourné en écrivant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ant antfile="${pom.basedir}/src/ant/build.xml" dir="${pom.basedir}" inheritAll="true" inheritRefs="true" target="foo">
        <property name="my.property" value="${my.property}"/>
    </ant>
    Je continue d'investiguer dessus pour voir si je peux adapter ce code dans mon projet ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 85
    Points : 43
    Points
    43
    Par défaut
    J'ai pu en effet résoudre ce "problème" en faisant ceci :

    Déclaration de la propriété dans le pom.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.logic.silogisme.pidi.ws.serveur</groupId>
    	<artifactId>serveur</artifactId>
    	<name>WebService Serveur</name>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>ear</packaging>
    	<properties>
    		<my.filter.value>hello</my.filter.value>
    	</properties>
    ...
    </project>
    Puis utilisation de la propertie dans le plugin Antrun :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-antrun-plugin</artifactId>
    				<version>1.3</version>
    				<executions>
    					<execution>
    						<id>compile</id>
    						<phase>compile</phase>
    						<configuration>
    							<tasks>
    								<!--
    									<property name="compile_classpath"
    									refid="maven.compile.classpath" />
    								-->
    								<property name="maven.compile.classpath" refid="maven.compile.classpath" />
    								<property name="maven.runtime.classpath" refid="maven.runtime.classpath" />
    								<property name="maven.test.classpath" refid="maven.test.classpath" />
    
    								<ant antfile="${basedir}/build.xml" inheritAll="true" inheritRefs="true">
    									<property name="my.filter.value" value="${my.filter.value}" />
    									<target name="test" />
    									<target name="init" />
    									<target name="build" />
    								</ant>
    							</tasks>
    						</configuration>
    						<goals>
    							<goal>run</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>

    Et enfin dans le build.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <target name="test">
     
        	<echo message="My Filter Value :	${my.filter.value}"/>

    Le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [echo] My Filter Value : hello

  4. #4
    Membre actif
    Homme Profil pro
    Chef de projet informatique
    Inscrit en
    Janvier 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Chef de projet informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 132
    Points : 205
    Points
    205
    Par défaut Merci.
    Ça fait un bail mais merci! J'aurai évité de passer du temps à chercher.

    En fait, à la date de ce post, il suffit de définir la propriété dans le pom.xml et de l'utiliser dans le build.xml; pas besoin d'attributs comme inheritall. Peut-être une évolution du plugin antrun.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/09/2013, 12h29
  2. Réponses: 3
    Dernier message: 03/08/2011, 15h06
  3. mvn site et accès aux properties du pom parent
    Par lmeur dans le forum Maven
    Réponses: 1
    Dernier message: 08/12/2008, 19h17
  4. Réponses: 4
    Dernier message: 02/06/2008, 11h51
  5. [AJAX] Acces aux données avec ajax dans une fonction javascript
    Par Sidi-Bou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2008, 12h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo