Am Fri, 9 Jan 2015 00:38:31 +0000 schrieb sebb <[email protected]>: > Just tried the animal sniffer on NET (Java 1.5) - I added a call to > new IOException(new Exception()) which is Java 1.6+
What Java did you use to start maven? Looks like Animal sniffer itself uses Java 7 API. Gruss Bernd > It does detect the reference, but the error message is pretty hopeless > - it does not show the class or even the jar in which it is found. > Instead there are a load of what appear to be debug lines: > > [ERROR] Failed to execute goal > org.codehaus.mojo:animal-sniffer-maven-plugin:1.13:check > (checkAPIcompat) on project commons-net: Execution checkAPIcompat of > goal org.codehaus.mojo:animal-sniffer-maven-plugin:1.13:check failed: > An API incompatibility was encountered while executing > org.codehaus.mojo:animal-sniffer-maven-plugin:1.13:check: > java.lang.NoSuchMethodError: > java.nio.CharBuffer.subSequence(II)Ljava/nio/CharBuffer; > [ERROR] ----------------------------------------------------- > [ERROR] realm = > plugin>org.codehaus.mojo:animal-sniffer-maven-plugin:1.13 [ERROR] > plugin>strategy = > plugin>org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy > [ERROR] urls[0] = > file:/Users/sebb/.m2/repository/org/codehaus/mojo/animal-sniffer-maven-plugin/1.13/animal-sniffer-maven-plugin-1.13.jar > [ERROR] urls[1] = > file:/Users/sebb/.m2/repository/org/codehaus/mojo/animal-sniffer/1.13/animal-sniffer-1.13.jar > [ERROR] urls[2] = > file:/Users/sebb/.m2/repository/org/ow2/asm/asm-all/4.0/asm-all-4.0.jar > [ERROR] urls[3] = > file:/Users/sebb/.m2/repository/org/codehaus/mojo/java-boot-classpath-detector/1.13/java-boot-classpath-detector-1.13.jar > [ERROR] urls[4] = > file:/Users/sebb/.m2/repository/org/apache/maven/reporting/maven-reporting-api/2.0.1/maven-reporting-api-2.0.1.jar > [ERROR] urls[5] = > file:/Users/sebb/.m2/repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-6/doxia-sink-api-1.0-alpha-6.jar > [ERROR] urls[6] = > file:/Users/sebb/.m2/repository/commons-cli/commons-cli/1.0/commons-cli-1.0.jar > [ERROR] urls[7] = > file:/Users/sebb/.m2/repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar > [ERROR] urls[8] = > file:/Users/sebb/.m2/repository/org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar > [ERROR] urls[9] = > file:/Users/sebb/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar > [ERROR] Number of foreign imports: 1 > [ERROR] import: Entry[import from realm ClassRealm[maven.api, > parent: null]] [ERROR] > > However, it does detect the error even if it does not provide any help > in finding it. > > On 8 January 2015 at 22:33, sebb <[email protected]> wrote: > > On 8 January 2015 at 21:21, Thomas Neidhart > > <[email protected]> wrote: > >> On 01/08/2015 07:12 PM, sebb wrote: > >>> On 8 January 2015 at 17:29, Benedikt Ritter > >>> <[email protected]> wrote: > >>>> > >>>> > >>>> Send from my mobile device > >>>> > >>>>> Am 08.01.2015 um 17:38 schrieb Thomas Neidhart > >>>>> <[email protected]>: > >>>>> > >>>>>> On 01/08/2015 05:24 PM, sebb wrote: > >>>>>>> On 8 January 2015 at 16:13, Thomas Neidhart > >>>>>>> <[email protected]> wrote: > >>>>>>>> On 01/08/2015 04:44 PM, sebb wrote: > >>>>>>>>> On 8 January 2015 at 11:45, Thomas Neidhart > >>>>>>>>> <[email protected]> wrote: On 01/08/2015 12:25 PM, > >>>>>>>>> sebb wrote: We certainly need to add animal-sniffer to our > >>>>>>>>> release building process to detect such things. > >>>>>>>> > >>>>>>>> Does that actually detect such things? > >>>>>>> > >>>>>>> yes, that's the intention of this tool, and there is even a > >>>>>>> maven plugin: > >>>>>>> > >>>>>>> http://mojo.codehaus.org/animal-sniffer-maven-plugin/index.html > >>>>>> > >>>>>> This suggests one has to create the API signature first. > >>>>>> Which means one has to have access to the appropriate JDK > >>>>>> anyway. > >>>>>> > >>>>>> But I now see that some sigs are already provided. > >>>>> > >>>>> here is an example of the usage: > >>>>> > >>>>> <plugin> > >>>>> <groupId>org.codehaus.mojo</groupId> > >>>>> <artifactId>animal-sniffer-maven-plugin</artifactId> > >>>>> <version>1.13</version> > >>>>> ... > >>>>> <configuration> > >>>>> ... > >>>>> <signature> > >>>>> <groupId>org.codehaus.mojo.signature</groupId> > >>>>> <artifactId>java15</artifactId> > >>>>> <version>1.0</version> > >>>>> </signature> > >>>>> ... > >>>>> </configuration> > >>>>> ... > >>>>> </plugin> > >>>>> > >>>>> signatures for the various jdk versions are already available. > >>>>> We could add different profiles to the parent depending on the > >>>>> maven.compiler.source property. > >>>>> > >>> > >>> A pity that the signatures are not called java1.5 etc. > >>> That would allow one to do: > >>> > >>> <artifactId>java${ maven.compiler.source}</artifactId> > >>> > >>> Maybe there is a way to drop the "." from the source property? > >> > >> its a pity maven does not support powerful property substitutions > >> like in ksh for example: > >> > >> http://www.softpanorama.org/Scripting/Shellorama/String_operations/ksh_substitutions.shtml > >> > >> Is there a pending feature request for this? > >> > >> What I have found is this: > >> > >> http://maven.40175.n5.nabble.com/String-manipulation-in-POM-td124186.html > >> > >> by using the gmaven-plugin you can create new properties based on > >> original ones using standard string manipulation functions. > > > > Looks like build helper can do it too: > > > > http://mojo.codehaus.org/build-helper-maven-plugin/regex-property-mojo.html > > > >>> If not, then profiles will work (but require more code). > >>> > >>>> Very nice! > >>>> > >>>>> Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
