Hi James,

Try using the following property in you Mojo.

    /**
     * The classpath elements of the project.
     *
     * @parameter expression="${project.runtimeClasspathElements}"
     * @required
     * @readonly
     */
    private List classpathElements;

I think in this case, you would have to provide your own classloader for
spring - the classloader for the Mojo does (as far as I understand) not
see the project dependencies.

cheers,

Johan


James Carman wrote:
> Franz,
> 
> Thanks for replying.  Let me explain it a bit more.  I was trying to gloss
> over things a bit.  Basically, I'm using Spring to instantiate the bean:
> 
> public class RunLoaderMojo extends AbstractMojo
> {
>    /**
>     * @parameter property="loaderBean" expression="${loaderBean}"
>     * @required
>     */
>    private String loaderBean;
> 
>    public void execute() throws MojoExecutionException
>    {
>        // Load all META-INF/beans.xml files on classpath!
>        ClassPathXmlApplicationContext ctx = new
> ClassPathXmlApplicationContext("classpath*:META-INF/beans.xml");
>        getLog().info("Running loader '" + loaderBean + "'...");
>        final Loader loader = ( Loader )ctx.getBean(loaderBean, Loader.class
> );
>        loader.execute();
>    }
> 
>    public String getLoaderBean()
>    {
>        return loaderBean;
>    }
> 
>    public void setLoaderBean(String loaderBean)
>    {
>        this.loaderBean = loaderBean;
>    }
> }
> 
> That's my mojo class.  Then, I want to use it in a project like this:
> 
> <plugin>
>  <groupId>com.myco.myproj</groupId>
>  <artifactId>maven-loader-plugin</artifactId>
> </plugin>
> 
> Then, I try executing the plugin like this (from the project dir):
> 
> mvn loader:run -DloaderBean=exampleLoader
> 
> If I try to use a beans.xml file that's defined within my project, it
> doesn't even see it on the classpath.  If I put it into one of my project's
> dependencies (another module of mine), then it sees it fine.  It just
> doesn't see anything within the enclosing project.  Does that make sense?
> 
> James
> 
> On 4/3/07, franz see <[EMAIL PROTECTED]> wrote:
>>
>>
>> Good day to you, James,
>>
>> Not sure how you're instantiating those classes. Anyway, try adding those
>> classes in your plugin's dependency ( see [1] ). And if you need the path
>> to
>> those binaries, see Getting dependency artifact path of [2].
>>
>> Cheers,
>> Franz
>>
>> [1]
>> http://maven.apache.org/ref/current/maven-model/maven.html#class_plugin
>> [2] http://docs.codehaus.org/display/MAVENUSER/
>>
>>
>> James Carman-3 wrote:
>> >
>> > All,
>> >
>> > I am developing a simple mojo which needs to access classes defined
>> within
>> > the project in which it is used.  But, they don't seem to be
>> visible.  I
>> > am
>> > writing a mojo that can execute a "loader" (loads data into our
>> database)
>> > object.  It takes a parameter that tells which loader class to use.
>> > Anyway,
>> > I now want to use that mojo within another project to run a loader
>> defined
>> > within that project.  When I try to instantiate that class, it's not
>> > available.  Is there something special I need to do to tell Maven to
>> > include
>> > the current project's classpath in my mojo's environment?
>> >
>> > James
>> >
>> >
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Using-containing-project%27s-classpath-within-mojo...-tf3519722s177.html#a9821549
>>
>> Sent from the Maven - Users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 

-- 
you too?

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to