profile activation based on jvm... i'll do a quick GIYF On Feb 5, 2008 8:53 PM, Martin Gainty <[EMAIL PROTECTED]> wrote: > I'll ask the dumb question..how do you do test the JVM version with maven? > > ? > M- > ----- Original Message ----- > From: "Stephen Connolly" <[EMAIL PROTECTED]> > To: "Maven Users List" <[email protected]> > > Sent: Tuesday, February 05, 2008 3:30 PM > Subject: Re: javax.mail and javax.activation in Java 6 > > > > Nooooooo! > > > > don't go abusing the system path for that > > > > Go with the exclude by default and add back in if jvm is < 6 > > > > On Feb 5, 2008 7:49 PM, J Douglas Donohoe <[EMAIL PROTECTED]> wrote: > > > Thanks for the suggestion. That led me down the right path. It looks > like the 'system' scope is more appropriate because in this case, the > classes are part of the rt.jar. I used the following profile: > > > > > > <profiles> > > > <profile> > > > <id>Java 1.6</id> > > > <activation> > > > <jdk>1.6</jdk> > > > </activation> > > > <dependencies> > > > <dependency> > > > <groupId>javax.activation</groupId> > > > <artifactId>activation</artifactId> > > > <version>1.1</version> > > > <scope>system</scope> > > > <systemPath>${java.home}/lib/rt.jar</systemPath> > > > </dependency> > > > </dependencies> > > > </profile> > > > </profiles> > > > > > > To verify this worked, I used the following command: > > > > > > $ mvn dependency:build-classpath > > > > > > The javax.activation jar no longer appears on the classpath, but rt.jar > now appears (presumably because this plugin defaults to the build > classpath). > > > > > > If I do: > > > > > > $ mvn dependency:build-classpath -DexcludeScope=system > > > > > > Then I get the classpath I want. > > > > > > Thanks for your help. > > > > > > One question on the use of 'system path' in dependency. Why is this > necessary at all? If it is part of the system, doesn't javac and/or java > know where to find it by default? > > > > > > -Doug > > > > > > *Note: I'm not sure the system path above will work quite right on a > Mac. It depends on how Apple decides to package things when they release > 1.6. > > > > > > > > > ----- Original Message ---- > > > From: Simon Kitching <[EMAIL PROTECTED]> > > > To: Maven Users List <[email protected]> > > > Cc: Doug Donohoe <[EMAIL PROTECTED]> > > > Sent: Tuesday, February 5, 2008 10:57:05 AM > > > Subject: Re: javax.mail and javax.activation in Java 6 > > > > > > > > > ---- Doug Donohoe <[EMAIL PROTECTED]> schrieb: > > > > Hi Maven Community: > > > > > > > > I have added this dependency in my POM: > > > > > > > > <dependency> > > > > <groupId>javax.mail</groupId> > > > > <artifactId>mail</artifactId> > > > > <version>1.4.1</version> > > > > </dependency> > > > > > > > > Which is retrieved from java.net using this POM definition: > > > > > > > > <repositories> > > > > <repository> > > > > <id>java.net</id> > > > > <url>http://download.java.net/maven/1</url> > > > > <layout>legacy</layout> > > > > </repository> > > > > </repositories> > > > > > > > > The POM for javax.mail declares a dependency on the Java activation > > > > framework. However, I am using Java 6 (1.6.0_02), which already > > > > includes the activation framework. > > > > > > > > My question: Is there a way in maven to conditionally define a > > > > dependency based on the JDK you are using? > > > > > > > > If there is, what is the best way for me to use such a mechanism. > > > > Ideally, the POM at java.net would be updated, but assuming I can't > > > > figure out how to get them to update that, how do I override there > > > POM? > > > > > > > > > > Try defining a profile called "java6" in your pom. Set its activation > > > section so it only activates for java1.6. Then in the profile define > > > that problem dependency with scope=provided. > > > > > > I think that will do the job. Dependencies declared directly in a pom > > > always override those pulled in transiently. That definitely occurs for > > > version-numbers, and I *think* it works for scope too. > > > > > > Regards, > > > Simon > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > 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] > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
