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]

Reply via email to