[ 
http://jira.codehaus.org/browse/MNG-3269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_112675
 ] 

Tim Reilly commented on MNG-3269:
---------------------------------

Hi Stephane, I agree the real problem is beyond the war plugin (I was hoping 
for a tactical solution with these patches.)

I'd like to propose the real issue is that Artifact should not have Dependency 
attributes as part of the object model. After all, a Dependency is not an 
Artifact but rather states the need (or not)  for an Artifact. 
IMO, an Artifact should not have a scope. An Artifact should not have a 
versionRange (although available versions is fine), and an Artifact can not be 
"optional" - it simply is. Dependencies are optional, have version ranges and 
scope. As you point out, in a mutli-module build which ever project resolves an 
"in common" dependency first will be the one to say if the artifact is 
optional, etc.

I wonder if Jason, Brett, John, et al would agree or not. Even if they did 
agree it would take many releases to change this.
I am hoping for now at least the war plugin could look at the project's 
Dependency  list for the Dependency->optional attribute and not "trust" the 
Artifact->optional attribute.

SN> You will have the same kind of issue with the EAR if you put the ejb-client 
optional 
Yes, I think the same issue would exist. But it's not an issue for our 
scenario, I guess i'd label this as "skinny war with attached ejb-client".

SN> I guess you need this for the manifest? Otherwise can't you put it 
provided? 
Yup, pretty much following this advice: 
http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html
I'll add we _really_ don't want to build our manifests manually. I'd rather 
continue with forking the war plugin I think.


> Different builds for ejb-client optional with parent
> ----------------------------------------------------
>
>                 Key: MNG-3269
>                 URL: http://jira.codehaus.org/browse/MNG-3269
>             Project: Maven 2
>          Issue Type: Bug
>    Affects Versions: 2.0.7
>            Reporter: Tim Reilly
>         Attachments: MWAR114-maven-war-plugin-2.0.2.patch, 
> MWAR114-maven-war-plugin-2.0.2.patch, 
> MWAR114-maven-war-plugin-2.1-alpha-1.patch, mytime.zip
>
>
> When trying to package a  j2ee project's ejb-client artifact in the ear /lib 
> directory the war plugin's optional attribute is ignored if building from the 
> parent app project. If you build from the parent project you get the 
> ejb-client packaged in the web-inf/lib directory. If you build the ejb, war, 
> and ear independently you get the ejb-client packaged in the ear /lib 
> directory. It seems when run from the parent project the dependency/artifact 
> doesn't have the optional attribute set.
> Perhaps this is b/c the artifact is a project artifact that was attached from 
> the ejb plugin it is not resolved as optional when the dependency is resolved 
> from the war project.
> Attaching Geronimo's mytime sample with modifications to reproduce the 
> behavior.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to