Cool! but runtime is fare fare too late ...
I want it to be able to run stuf out of jar (in eclipse)
I need it for surfire test (before jar is done )
so in fact I need exactly this but beeing done at prepare
resouces phase ... :-(
Thanks,
-
Guillaume
> Hi,
>
> Maven includes the pom.xml by default under
> META-INF/maven/${grouId}/${artifactId}/pom.xml
> in the generated artifact. So if you just need the file
during runtime it
> is already there :-)
>
> -Tim
>
> G.B. schrieb:
> > Hi,
> > I want to do something very simple : copy my pom file to a
> > known location (in the classpath), and I want that to be done
> > in all my project/subprojects.
> >
> > I have main project A with sub component B and C
> > A contains the super pom B and C pom are inherited from A.
> > First thing I did is create the following
> > <build>
> > <plugins>
> > ?
> > <plugin>
> > <groupId>org.apache.maven.plugins</groupId>
> > <artifactId>maven-antrun-plugin</artifactId>
> > <executions>
> > <execution>
> > <id>pomAntCopy</id>
> > <goals>
> > <goal>run</goal>
> > </goals>
> > <phase>process-resources</phase>
> > <configuration>
> > <tasks>
> > <copy
file="${basedir}/pom.xml"
> >
>
todir="${project.build.outputDirectory}/myLocation/${groupId}/${artifactId}"
> > overwrite="true"/>
> > </tasks>
> > </configuration>
> > </execution>
> > </executions>
> > </plugin>
> >
> > If I do mvn process-resources I only get that result in
> > A/target/? B and C are just ignoring it
> > After a lot of tries I did
> >
> > <plugin>
> > <inherited>true</inherited>
> > <groupId>org.apache.maven.plugins</groupId>
> > <artifactId>maven-antrun-plugin</artifactId>
> > <executions>
> > <inherited>true</inherited>
> > <execution>
> > <inherited>true</inherited>
> > <id>pomAntCopy</id>
> > <goals>
> > <inherited>true</inherited>
> > <goal>run</goal>
> > </goals>
> > <phase>process-resources</phase>
> > <configuration>
> > <inherited>true</inherited>
> > <tasks>
> > <copy
file="${basedir}/pom.xml"
> >
>
todir="${project.build.outputDirectory}/META-INF/maven/${groupId}/${artifactId}-ant"
> > overwrite="true"/> </tasks>
> > </configuration>
> > </execution>
> > </executions>
> > </plugin>
> >
> > I know I added too much inherited but I wanted to make sur
> > maven would understand I want inheritance :o) ? it did not
work
> >
> > I tried to do a stupid plugin:
> >
> > /**
> > * @goal copy
> > * @description Copy Pom into location in classpath to be use
> > by life cycle tool durring
> > * developpment process
> > * @execute phase="process-resources"
> > */
> > public class DevelopmentPomReplicator extends AbstractMojo {
> >
> > /**
> > * The project to process.
> > *
> > * @parameter expression="${project}"
> > * @required
> > * @readonly
> > */
> > private MavenProject mavenProject;
> >
> > /**
> > * The project base dir.
> > *
> > * @parameter expression="${basedir}"
> > * @required
> > * @readonly
> > */
> > private String pomDir;
> >
> > /**
> > * @parameter expression="${project.build.directory}"
> > * @required
> > */
> > private String outDir;
> >
> > public void execute() throws MojoExecutionException,
> > MojoFailureException {
> > final int BUFFER = 2048;
> > if("jar".equalsIgnoreCase(mavenProject.getPackaging())){
> > try{
> > String outputSubPath ="/mylocation/" +
> > mavenProject.getGroupId() + "/" +
mavenProject.getArtifactId();
> > File pomIn = new File(pomDir + "/pom.xml");
> > BufferedInputStream l_bis = new BufferedInputStream(
> > new FileInputStream(pomIn));
> > File pomOut = new File(outDir + outputSubPath +
> > "/pom.xml");
> > pomOut.getParentFile().mkdirs();
> > BufferedOutputStream l_bos = new BufferedOutputStream(
> > new FileOutputStream(pomOut));
> > byte data[] = new byte[BUFFER];
> > int count;
> > while ((count = l_bis.read(data, 0, BUFFER)) != -1) {
> > l_bos.write(data, 0, count);
> > }
> > l_bos.flush();
> > l_bos.close();
> > } catch(Exception e){
> > throw new MojoExecutionException("copy", e);
> > }
> >
> > }
> >
> > }}
> >
> > in A pom I added
> > <plugin>
> > <inherited>true</inherited>
> > <groupId>test.build.inheritance</groupId>
> > <artifactId>DevelopmentPomReplicator</artifactId>
> > <configuration>
> > <outDir>${project.build.directory}/toto</outDir>
> > </configuration>
> > <executions>
> > <inherited>true</inherited>
> > <execution>
> > <inherited>true</inherited>
> > <id>pomReplicatorCopy</id>
> > <phase>process-resources</phase>
> > <goals>
> > <goal>copy</goal>
> > </goals>
> > </execution>
> > </executions>
> > </plugin>
> >
> > did not work ? only A execute it ? more over I have the
> > following message :
> >
> > [INFO] Preparing DevelopmentPomReplicator:copy
> >
> > [WARNING] Removing: copy from forked lifecycle, to prevent
> > recursive invocation.
> >
> > Arg no please no ? it's exactly what I want! Recursive
invocation.
> > How can I enable it ?
> > How should I proceed ?
> >
> > Please help.
> > Thanks in advance
> > Guillaume
Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,34 /mn) ; tél : 08 92 68 13 50 (0,34/mn)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]