Hmm.  That might wok, although we really don't need these artifacts to be
installed and deployed.  We just need them as dependencies.  Ideally,
though, we'd want the list to be computed dynamically.  It is quite big,
and we don't have a whole lot of control over it.  We don't want to have to
update the pom.xml every time it changes.

There's still the question of getting directories on the classpath.  The
directory we need is created during the pre-integration-test phase, so I
don't think that adding it as a test resource would work, since the
resource copying would happen before the directory is created.  Any ideas
about that?

-Jeff


Jeffrey Hagelberg, Software Engineer
XMeta Development
IBM Software Group
Phone: 978-899-2055 T/L:276-2055)
Email:[email protected]


                                                                       
  From:       Kalle Korhonen <[email protected]>              
                                                                       
  To:         Maven Users List <[email protected]>                
                                                                       
  Date:       05/09/2009 04:16 AM                                      
                                                                       
  Subject:    Re: Dynamically Modifying the Classpath                  
                                                                       





On Fri, May 8, 2009 at 6:56 PM, Jeffrey N Hagelberg
<[email protected]>wrote:

> We are trying to find a way to add some jars that are generated during
the
> pre-integration-test phase to the class path when the integration tests
> run.  There is also a folder with configuration files that is created at
> the same time that we also need to add to the class path.  The jar and
> directory are both built programatically by another plugin, and maven
does
> not know anything about them.  Does anyone know a way to do this?


Instead of making things more complicated, why wouldn't you just let Maven
know about these secondary artifacts with the help of build-helper plugin (
http://mojo.codehaus.org/build-helper-maven-plugin/attach-artifact-mojo.html

)?

Kalle



> I have an idea about how to do this, but it is rather convoluted. My idea
> is to create a plugin that basically calls "mvn install:install-file" on
> each jar to put it in the local maven repository and then programatically
> add the jars as a dependencies of the project by adding artifacts for
them
> to the list returned by project.getDependencies().  My plan is to make
the
> plugin invoke the install:install-file plugin by doing something similar
to
> what the maven invoker plugin does.  I don't think we can do this by
using
> install:install-file plugin directly because we don't know ahead of time
> what the exact set of jars will be.  We want to add jars in a certain
> directory whose name matches a certain pattern.  There's also the fact
that
> it would have to happen during the pre-integration-test phase, and as far
> as I know the execution order is undefined for goals executing in
different
> execution groups within the same phase.  That is, I don't think you can't
> tell whether the executions for plugin1 or plugin2 will happen first if
> they are both in the same phase.  We can't have this run before the jars
> are generated!  I'd love to find out I'm wrong about this, though.
>
> As for adding the directory to the classpath, I am somewhat at a loss.
If
> the folder was created earler, I think we could add it as a test
resource.
> However, I think that the copying happens before the pre-integration-test
> phase.  Right now, the only thing I can think of is to manually copy the
> contents of the folder into the test-classes directory where the compiled
> classes are.  Does anyone have any other ideas?
>
> Does anyone know to do these things or if what I suggested above will
work?
>
> We're using maven 2.1.0.
>
> Thanks in advance for any help you can provide.
>
> -Jeff
>
> Jeffrey Hagelberg, Software Engineer
> XMeta Development
> IBM Software Group
> Phone: 978-899-2055 T/L:276-2055)
> Email:[email protected] <email%[email protected]>

Reply via email to