why not add a <resource/> with the directory pointed at ${basedir}, and a
single include of pom.xml with excludes of **/*?

Then, your pom would be copied into target/classes on prepare-resources,
IIRC.

-john

On 4/12/06, G.B. <[EMAIL PROTECTED]> wrote:
>
> 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]
>
>

Reply via email to