Good question. I also noticed that the <properties/> subelement of
<dependency> does not exist anymore like in Maven 1. What is the equivalent
for that now?

regards,

Wim

2005/11/21, Stephen Cowx <[EMAIL PROTECTED]>:
>
> Hi
>
> I would like to take this one step further, I need to obtain the details
> for a single dependency declared in a pom and use it in my plugin:
>
> My plugin, which runs SQL scripts, needs to reference the JDBC driver of
> the plugin users choice.
>
> I need to be able to put the jar file containing this users chosen
> driver onto the classpath that my plugin is using at runtime.
> - I don't want to break the isolation that my plugin has from the other
> dependencies in the users pom, I just need the jdbc driver.
> - I don't want to have to specify the jdbc driver as a dependency for my
> own plugin because I want lots of people to be able to use this with
> lots of different drivers.
>
> The only way I can think of to do this is to follow the steps outlined
> in this thread for obtaining a list of artifacts for the pom using the
> plugin, iterate through the list until I find the one the user has
> specified to be their jdbc driver (through a property of some kind) and
> then add that to the classpath being used by my plugin.
>
> Although possible, this is a little unwieldy and I can;t help feeling
> there must be an easy way to do this.
>
> So...
>
> Is there an existing way to do this, something like my example below
> (note <dependency> property)
>
> <build>
> <plugins>
> <plugin>
> <groupId>my.group.id <http://my.group.id></groupId>
> <artifactId>plugin-sqlrunner</artifactId>
> <version>1.0.0-dev</version>
> <executions>
> <execution>
> <phase>test</phase>
> <configuration>
> <user>${db-username}</user>
> <pass>${db-password}</pass>
> <url>${db-url}</url>
> <driver>oracle.jdbc.OracleDriver</driver>
> <onerror>continue</onerror>
> <dependency>
> <groupId>ojdbc</groupId>
> <artifactId>ojdbc</artifactId>
> <version>14</version>
> <dependency>
> <files>
> <file>${basedir}/src/main/oracle/BillImage.sql</file>
> <file>${basedir}/src/main/oracle/RunTimeControls.sql</file>
> <file>${basedir}/src/main/oracle/audit.sql</file>
> <file>${basedir}/src/main/oracle/CreateSequences.sql</file>
> </files>
> </configuration>
> <goals>
> <goal>runsql</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins>
>
>
> regards
>
> Stephen
>
> Wim Deblauwe wrote:
>
> >ok, thanks! That was it.
> >
> >2005/11/21, Allison, Bob <[EMAIL PROTECTED]>:
> >
> >
> >>The tag "@requiresDependencyResolution" has to be on the class, not the
> >>parameter.
> >>
> >>-----Original Message-----
> >>From: Wim Deblauwe [mailto:[EMAIL PROTECTED]
> >>Sent: Monday, November 21, 2005 06:41
> >>To: Maven Users List
> >>Subject: Re: [m2] Copy the dependencies of a project in a custom plugin
> >>
> >>
> >>The collection of artifacts is empty. When I was using dependencies, it
> >>was
> >>not empty. What am I doing wrong? This is my code:
> >>
> >>/**
> >>* @goal process-resources
> >>* @description Copy the dependencies for the InstallShield Merge Module
> >>*/
> >>public class MsmProcessResourcesMojo extends AbstractMojo
> >>{
> >>/**
> >>* @parameter expression="${project.artifacts}"
> >>* @requiresDependencyResolution
> >>*/
> >>private Collection artifacts;
> >>
> >>/**
> >>* @parameter expression="${project.build.directory}/resources"
> >>*/
> >>private File targetDirectory;
> >>
> >>public MsmProcessResourcesMojo()
> >>{
> >>}
> >>
> >>public void execute() throws MojoExecutionException,
> >>MojoFailureException
> >>{
> >>try
> >>{
> >>getLog().info( "Process Resources for InstallShield Merge Module..." );
> >>Iterator iterator = artifacts.iterator();
> >>while (iterator.hasNext())
> >>{
> >>Artifact artifact = (Artifact)iterator.next();
> >>FileUtils.copyFileToDirectory( artifact.getFile(), new File(
> >>targetDirectory, artifact.getType() + "s" ) );
> >>}
> >>}
> >>catch (IOException e)
> >>{
> >>throw new MojoExecutionException( "Error copying artifacts", e );
> >>}
> >>}
> >>}
> >>
> >>thank you,
> >>
> >>Wim
> >>
> >>2005/11/21, Brett Porter <[EMAIL PROTECTED]>:
> >>
> >>
> >>>maven-artifact and maven-project (though you may not need the project
> >>>dependency if you are just using the expression below as it is
> >>>runtime, and Mavne provides it).
> >>>
> >>>- Brett
> >>>
> >>>On 11/21/05, Wim Deblauwe <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>>What dependency do I need for the Artifact and Project classes in my
> >>>>
> >>>>
> >>>Mojo?
> >>>
> >>>
> >>>>2005/11/21, Brett Porter <[EMAIL PROTECTED]>:
> >>>>
> >>>>
> >>>>>On 11/21/05, Wim Deblauwe <[EMAIL PROTECTED]> wrote:
> >>>>>
> >>>>>
> >>>>>>Hi,
> >>>>>>
> >>>>>>I'm writing a custom plugin and I need to copy the project's
> >>>>>>
> >>>>>>
> >>>>>dependencies
> >>>>>
> >>>>>
> >>>>>>from the local repository to a certain directory. How can I do
> >>>>>>
> >>>>>>
> >>this
> >>
> >>
> >>>>>best?
> >>>>>
> >>>>>You should use ${project.artifacts} instead which includes all the
> >>>>>transitive artifacts, and for which you can call
> >>>>>
> >>>>>
> >>artifact.getFile().
> >>
> >>
> >>>>>Make sure you include @requiresDependencyResolution
> >>>>>
> >>>>>
> >>>>>
> >>>>>>question 2:
> >>>>>>When my plugin works, it will produce a different artifact
> >>>>>>
> >>>>>>
> >>(.msm),
> >>
> >>
> >>>how
> >>>
> >>>
> >>>>>>should I handle the 'instal' and 'deploy' of that artifact? Do I
> >>>>>>
> >>>>>>
> >>>need to
> >>>
> >>>
> >>>>>>write my own custom mojo for that or can I re-use the plugins
> >>>>>>
> >>>>>>
> >>>already
> >>>
> >>>
> >>>>>>written for .jar files?
> >>>>>>
> >>>>>>
> >>>>>You can reuse the mojos, but you will still need to define the
> >>>>>customisations, which will require a plugin. There are examples in
> >>>>>
> >>>>>
> >>the
> >>
> >>
> >>>>>"introduction to the build lifecycle".
> >>>>>
> >>>>>Cheers,
> >>>>>Brett
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>---------------------------------------------------------------------
> >>
> >>
> >>>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >
> >
> >
>
>

Reply via email to