Thanks for your help franz, it's nice to have the kind of support you
provides.
In fact, I've adopted the strategy I've seen in the
maven-dependency-plugin :
1) I've included in my plugin a java bean PomArtifact that declares
three String attributes : groupId, artifactId and version. Public
getters and setters are defined for those attributes, and the attributes
javadoc uses the @parameter and @required annotations (note that
defining default values such as ${project.groupId} fot those attributes
doen not seems to work)
2) In my mojo, sourcePom type is now PomArtifact
3) Everything works fine using the following xml in the POM :
<project>
...
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<executions>
<execution>
<configuration>
<sourcePom>
<artifactId>...</artifactId>
<groupId>...</groupId>
<version>...</version>
</sourcePom>
<configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4) In my Mojo execute method, I will now create an Artifact object using
the values retrieved from sourcePom.
Sebastien
-----Original Message-----
From: franz see [mailto:[EMAIL PROTECTED]
Sent: Friday, November 10, 2006 2:54 PM
To: [email protected]
Subject: Re: XML representation of an Artifact in the <configuration>
section of the POM
Good day to you, Sebastien,
Note: I don't know everything about mojo parameters but i'll show what i
know so far
Here's the break down of a mojo parameter:
/**
* @parameter expression="${merge-jar-dependencies.sourcePom}"
default-value="${project.artifact}"
*/
private Aritfact sourcePom;
expression (in your case, merge-jar-dependencies.sourcePom).
`--> Used to inject a Property value to that parameter (sourcePom).
Properties may come from System / Environment Variables, POM properties,
Commandline Properties, Filter properties, or other predefined
properties (i.e project.artifact).
default-value (in your case, project.artifact) `--> Injects a property
to your parameter.
you class's field (in your case, soucePom) `--> This is your paramater.
If the first two discussed here is injected by properties, this one is
injected from the <configuration> element in your pom. (Note: AFAIK, if
you set your experssion as a predefined property such as
project.artifact, the parameter can no longer be configured in your pom)
To answer your question, since you're using a class, you use the
parameter.
<project>
...
<build>
<plugins>
<plugin>
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<executions>
<execution>
<configuration>
<sourcePom>
<artifactId>...</artifactId>
<groupId>...</groupId>
<version>...</version>
...
</sourcePom>
<configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
the <sourcePom> represents your sourcePom field in your class.
the elements of <sourcePom> are the fields of the Artifact.
Things I am unsure of:
1. I am not sure if <sourcePom> will work as it is. But if not, you may
want to try <sourcePom
implementation="org.apache.maven.artifact.DefaultArtifact".
2. I am not sure if "private Aritfact sourcePom" will work as well, you
may want to try DefaultArtifact.
3. Most likely, #1 & #2 will work withouth those "workarounds" i
mentioned, Im just not sure how.
4. I am not sure whether it is the fields of the Artifact that you
access with the elements of <sourcePom> or the setters.
If you find the answers to those, or if somebody out there who knows,
kindly share it with us :-)
Thanks,
Franz
Sebastien Brunot wrote:
>
> Hi all,
>
> i have a mojo that defines a parameter names sourcePom which type is
> Artifact :
>
> /**
>
> * The POM where jar dependencies are declared.
>
> *
>
> * @parameter expression="${merge-jar-dependencies.sourcePom}"
> default-value="${project.artifact}"
>
> */
>
> private Artifact sourcePom;
>
>
>
> I don't know how to specify an artifact under <configuration>
> <sourcePom> ...
>
> Thanks for your help,
>
> Sebastien
>
>
>
>
>
--
View this message in context:
http://www.nabble.com/XML-representation-of-an-Artifact-in-the-%3Cconfig
uration%3E-section-of-the-POM-tf2607681s177.html#a7277297
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
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]