Hi Lukas,

Thanks very much for this information. I did run with -X and saw the
classpath but expected that the plugin jar would be on the classpath
within a goal defined by that plugin.

I'll extract my stuff into a separate jar.

Chris.

2008/5/16 Lukas Theussl <[EMAIL PROTECTED]>:
> IIRC artifacts of type plugin are not added to the runtime classpath (if you
> run with -X you should see a corresponding message). You have to
> deploy/install the plugin as a jar and declare a dependency of a jar type.
>
> HTH,
> -Lukas
>
>
> christo wrote:
>>
>> Hi All,
>>
>> I've read the docs, googled, read mailing list archives, asked in irc
>> etc. but have been unable to find the answer to this.
>>
>> I'm writing a maven 1 plugin which adds a goal that calls <ant:java>
>> running the main method of a class which is bundled in the plugin jar.
>> There are jar deps in the plugin but my question is not about ensuring
>> that the plugin's dependencies are on the runtime classpath of the
>> jvm. I understand how to do this using the
>> ${plugin.getDependencyPath()} call.
>>
>> The purpose of the plugin is to create a file for the distribution -
>> essentially metadata for the app. Originally I tried to implement the
>> whole thing in Jelly but after a few hours I gave up and wrote it in a
>> dozen lines of Java.
>>
>> The plugin runs the goal in my project but when the jvm tries to load
>> my class it can't find it. Why is the plugin jar not on the classpath
>> of the project when the goal is sought? I have tried sprinkling magic
>> fork="true" spawn="true" and this doesn't work.
>>
>> I've been assuming I need to put a classpath reference into the
>> <ant:java> tag.  But I can't do this because my plugin jar is not  a
>> dep of itself. Below you can see I've descended into cargo culting a
>> bit in frustration and pasted ant path elements willy nilly.
>>
>> The only other plugins I can find that bundle classes are build
>> reports which register themselves explicitly. Do I have to register
>> for a non report plugin?
>>
>> My plugin id: maven-hash-registry-plugin
>> Main class for plugin: com.atlassian.hashregistry.GenerateHashRegistry
>> Goal name: hashregistry:generate
>>
>> <project xmlns:ant="jelly:ant">
>>  <goal name="hashregistry:generate" prereqs="java:compile"
>> description="Generate the hash registry">
>>    <ant:java classname="com.atlassian.hashregistry.GenerateHashRegistry">
>>        <ant:classpath>
>>                <ant:pathelement location="${maven.build.dest}" />
>>                <ant:path refid="maven.dependency.classpath" />
>>                <ant:path refid="maven.compile.src.set" />
>>                <ant:pathelement
>> location="${plugin.getDependencyPath('commons-jelly:commons-jelly')}"/>
>>                <ant:pathelement
>> location="${plugin.getDependencyPath('commons-codec:commons-codec')}"/>
>>                <ant:pathelement
>> location="${plugin.getDependencyPath('commons-io:commons-io')}"/>
>>                <ant:pathelement
>>
>> location="${plugin.getDependencyPath('maven-hash-registry-plugin:maven-hash-registry-plugin')}"/>
>>                <ant:pathelement
>> location="${plugin.getDependencyPath('maven-hash-registry-plugin')}"/>
>> <!-- just in case this is correct -->
>>           </ant:classpath>
>>    </ant:java>
>>  </goal>
>> </project>
>>
>> Any pointers or wisdom would help. I'm just about to check out the
>> source to Maven!
>>
>> thanks in advance,
>>
>> Chris.
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Chris Mountford

"In theory, there is no difference between theory and practice. But,
in practice, there is." -- Jan L. A. van de Snepscheut

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

Reply via email to