What about an auto-activated profile based on a file (non) existence ?
<activation>
<file>
<missing>src</missing>
</file>
</activation>
That way, your script is only executed at parent level and not on
children...
No ?
Benoît.
-----Message d'origine-----
De : Sumit Kumar [mailto:[email protected]]
Envoyé : lundi 23 décembre 2013 21:15
À : [email protected]
Objet : How to run a script only for top-level project using
maven-antrun-plugin?
Hi,
I want to create a profile that can help me run an auto-generated script
onto the target m/c. Since i would want this on a build m/c to be executed
only once, i figured it would be better to keep this target in a separate
profile. Here is what the skeleton looks like in my parent component's
pom.xml (i chose parent component, because there are 3 or 4 sub components
who would need this script's output).
<profile>
<id>run-script</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version>
<configuration>
<skipTests>false</skipTests>
</configuration>
<executions>
<execution>
<id>run-script</id>
<phase>initialize</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<echo file="target/install-foo.sh"> ................
</echo>
<exec executable="sh" dir="${basedir}"
failonerror="true">
<arg line="target/install-foo.sh" />
</exec>
</target>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
My problem is that this script gets executed for each and every sub
component of the parent component. Is there a way to ensure that this script
install-foo.sh is executed only once? I was running "mvn initialize
-Prun-script" I tried with generate-sources phase as well and had the script
running for all the sub-components. Any pointers will be very helpful.
Thanks,
-Sumit
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]