any way to do jdk Less than 6 Thanks/ Martin-- ----- Original Message ----- From: "Stephen Connolly" <[EMAIL PROTECTED]> To: "Maven Users List" <[email protected]> Sent: Tuesday, February 05, 2008 4:12 PM Subject: Re: javax.mail and javax.activation in Java 6
> And you know what, Google _Is_ Your Friend: > > http://maven.apache.org/guides/introduction/introduction-to-profiles.html > > The follwing configuration will trigger the profile when the JDK's version > starts with "1.4" (eg. "1.4.0_08", "1.4.2_07", "1.4"): > > <profiles> > <profile> > <activation> > <jdk>1.4</jdk> > </activation> > ... > </profile> > </profiles> > > So if you are using generics (i.e. don't have to worry about jdk 1.4) you > just have the profile to add the dependency back in activated by <jdk>1.5 > </jdk> > > if you have to worry about 1.4, you'll need two profiles... and if, God > forbid you need to worry about 1.3, three profiles all adding it back in > > On Feb 5, 2008 9:09 PM, Stephen Connolly <[EMAIL PROTECTED]> > wrote: > > 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]
