But you shouldn't be having java code in module 3 (as it is a war module) so that should be split in two to follow best practice... It sounds like you have multiple-module-phobia... That way is the way of fear. Fear leads to anger... Anger leads to the dark side. Embrace the many modules on the light side of the maven-force
On Wednesday, 28 August 2013, Richard Sand wrote: > I thought about it, but its very complicated to obfuscate in stages because > some of the classes to be obfuscated in projects 3 and 4 rely on the > obfuscated entrypoints in project 2. > > Basically obfuscation has to be the last thing done before final testing > and > assembly. > > -----Original Message----- > From: Stephen Connolly [mailto:stephen.alan.conno...@gmail.com<javascript:;> > ] > Sent: Wednesday, August 28, 2013 3:12 PM > To: Maven Developers List > Subject: Re: artifact attached by plugin not appearing in subsequent > plugins > > Sounds like you should be obfuscating *in* module 2 and then adding the > dependency with classifier to module 3 and 4 (or do two obfuscations in > module 2 if you need different flavours) > > On Wednesday, 28 August 2013, Richard Sand wrote: > > > Hi all, > > > > Wayne, thanks for the feedback. I understand where you're coming from. > > I've written out here a concrete example of what I want to do with > > these plugins, and with maven in general wrt passing generated > > artifacts between plugins. Hopefully others will weigh in on whether > > this approach is good and maven-esque. > > > > I have 4 maven projects: > > > > 1) a global parent pom > > 2) a common API project which creates a jar > > 3) a web application project (a Jersey JAX-RS service fwiw) which > > creates a war and depends on #2 > > 4) a java client for #3 (based on JerseyClient), which also depends on > > #2 > > > > 1st example: In project 3, I use my obfuscation plugin on the common > > API and the generated classes. That resulting jar file needs to go > > into the WEB-INF/lib folder of the war file. My proposed change to the > > maven war plugin would make it automatically look for a generated jar > > artifact attached to the project from a previous plug-in and package > > it appropriately. The current alternative, which admittedly is no big > > deal, is to simply have the output artifact created by my plugin go > > directly into WEB-INF/lib. But adding a boolean config variable to > > maven-war-plugin to tell it to look for attached jars and include them > > seems logical as well as trivial to me, but this could just be because > > of my relative newness to all things Maven > > > > 2nd example: in project 4, I again use my obfuscation plugin on the > > common API and generated classes, and then want to take that artifact > > and, along with the rest of the dependencies, use the > > maven-shade-plugin to build an "uberjar". More problematic than > > example 1 above because the shade plugin only looks at artifacts and > > has no hook to include anything directly from the filesystem. So what > > I did was modify the shade 2.1 source to include a new configuration > parameter. For simplicy's sake I simply called it " > > alternativeInputClassifier". When present, it instructs shade to look > > for an attached artifact with the artifact name of the project, of > > type jar, and with the specified classifier, in lieu of processing > > only the main project as input. It was a very minor change and I'm > > happy to provide the diff for it. The result is that my pom.xml for > > project 4 looks like below and works beautifully. One pom with two > profiles: > > > > <dependencies> > > .... > > <dependency> > > <groupId>com.idfconnect.myproject</groupId> > > <artifactId>common-tools</artifactId> > > </dependency> > > </dependencies> > > <profiles> > > <profile> > > <!-- REGULAR (unobfuscated) PROFILE --> > > <id>regular</id> > > <activation> > > <activeByDefault>true</activeByDefault> > > </activation> > > <build> > > <plugins> > > <!-- BEGIN SHADE --> > > <plugin> > > > > From: Wayne Fay [mailto:wayne...@gmail.com <javascript:;><javascript:;>] > > Sent: Tuesday, August 27, 2013 5:04 PM > > To: Maven Users List > > Subject: Re: artifact attached by plugin not appearing in subsequent > > plugins > > > > > Hi Wayne - that seems a very inefficient approach, having 5 or 6 > > > separate modules to manage to achieve a single assembly. The point > > > is that maven does have phases, goals, lifecycles - why not use > > > them? The MavenProject object already provides the > > > > Not saying this is ideal for all scenarios. Just saying it is one > > solution that works out of the box and it leaves the door open for > > customization you may need along the way. People here oftentimes say they > "just want to do X" > > and so we provide some advice. Then they come back a week later and > > say well actually they need variants of X for different clients, > > environments, architectures, etc so they share how they've been going > > down the path of profiles which most of us here believe is the wrong > > way to do things. I'm just trying to ensure you know TMTOWTDI > > (perl-ism). :) > > > > > ...I think dividing the construction of a single atomic component > > > into multiple modules because the plugins cannot be chained together > > > is more > > unappealing. > > > > I don't disagree. As I said, this is based on my assumption (perhaps > > wrong) that you have left a great many details out of your original > > query, and the next few emails will describe a monstrous beast you > > have created with profiles and binding plugins to various lifecycles > > etc in an effort to do "all the work" in a single project/module. ;-) > > > > > BTW I haven't touched Ant in at least 6 years, so I doubt I'm an > > > "Ant-oriented person". :-) > > > > Didn't mean you were necessarily Ant-oriented. I know you've released > > some Maven plugins lately. Thanks for your work in the Maven > > ecosystem! :) > > > > Wayne > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@maven.apache.org<javascript:;> > > <javascript:;> For additional commands, e-mail: > > users-h...@maven.apache.org <javascript:;><javascript:;> > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org <javascript:;> > > <javascript:;> For additional commands, e-mail: > > dev-h...@maven.apache.org <javascript:;> <javascript:;> > > > > > > -- > Sent from my phone > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org <javascript:;> > For additional commands, e-mail: dev-h...@maven.apache.org <javascript:;> > > -- Sent from my phone