Maven plugin development - how to ensure building for Maven 3.0.x instead of 3.1.x? -


i'm trying develop custom maven plugin. i'm running problem when execute unit tests: java.lang.noclassdeffounderror: org.eclipse.aether.repositorysystemsession stack trace below:

 initializationerror(com.mycompany.myplugintest)  time elapsed: 0 sec  (testsuite.java:132)     @ org.junit.internal.runners.junit38classrunner.(junit38classrunner.java:72)     @ org.junit.internal.builders.junit3builder.runnerforclass(junit3builder.java:11)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.builders.alldefaultpossibilitiesbuilder.runnerforclass(alldefaultpossibilitiesbuilder.java:26)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.requests.classrequest.getrunner(classrequest.java:26)     @ org.apache.maven.surefire.junit4.junit4provider.execute(junit4provider.java:262)     @ org.apache.maven.surefire.junit4.junit4provider.executetestset(junit4provider.java:153)     @ org.apache.maven.surefire.junit4.junit4provider.invoke(junit4provider.java:124)     @ org.apache.maven.surefire.booter.forkedbooter.invokeproviderinsameclassloader(forkedbooter.java:200)     @ org.apache.maven.surefire.booter.forkedbooter.runsuitesinprocess(forkedbooter.java:153)     @ org.apache.maven.surefire.booter.forkedbooter.main(forkedbooter.java:103) caused by: java.lang.classnotfoundexception: org.eclipse.aether.repositorysystemsession     @ java.net.urlclassloader.findclass(urlclassloader.java:423)     @ java.lang.classloader.loadclass(classloader.java:660)     @ sun.misc.launcher$appclassloader.loadclass(launcher.java:346)     @ java.lang.classloader.loadclass(classloader.java:626)     @ java.lang.j9vminternals.verifyimpl(native method)     @ java.lang.j9vminternals.verify(j9vminternals.java:72)     @ java.lang.j9vminternals.verify(j9vminternals.java:70)     @ java.lang.j9vminternals.initialize(j9vminternals.java:134)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:44)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:27)     @ java.lang.reflect.constructor.newinstance(constructor.java:516)     @ junit.framework.testsuite.createtest(testsuite.java:63)     @ junit.framework.testsuite.addtestmethod(testsuite.java:310)     @ junit.framework.testsuite.addtestsfromtestcase(testsuite.java:153)     @ junit.framework.testsuite.(testsuite.java:132)     @ org.junit.internal.runners.junit38classrunner.(junit38classrunner.java:72)     @ org.junit.internal.builders.junit3builder.runnerforclass(junit3builder.java:11)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.builders.alldefaultpossibilitiesbuilder.runnerforclass(alldefaultpossibilitiesbuilder.java:26)     @ org.junit.runners.model.runnerbuilder.saferunnerforclass(runnerbuilder.java:59)     @ org.junit.internal.requests.classrequest.getrunner(classrequest.java:26)     @ org.apache.maven.surefire.junit4.junit4provider.execute(junit4provider.java:262)     @ org.apache.maven.surefire.junit4.junit4provider.executetestset(junit4provider.java:153)     @ org.apache.maven.surefire.junit4.junit4provider.invoke(junit4provider.java:124)     @ org.apache.maven.surefire.booter.forkedbooter.invokeproviderinsameclassloader(forkedbooter.java:200)     @ org.apache.maven.surefire.booter.forkedbooter.runsuitesinprocess(forkedbooter.java:153)     @ org.apache.maven.surefire.booter.forkedbooter.main(forkedbooter.java:103) 

from research, can happen when building maven 3.1.x because maven switched sonatype aether implementation eclipse implementation.

i trying build plugin eclipse 3.0.4, since that's what's installed on our workstations. i'm assuming i'm seeing error because 1 of dependencies maven 3.1.x dependency, although i'm not sure one. know dependency should correct?

also, know if it's possible build plugin work maven 3.0.x , 3.1.x? i'd rather not have go through again day in future when move newer version of maven.

the dependencies in pom this:

<dependencies>     <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-plugin-api</artifactid>         <version>3.0.4</version>     </dependency>     <dependency>         <groupid>org.apache.maven.plugin-tools</groupid>         <artifactid>maven-plugin-annotations</artifactid>         <version>3.0</version>     </dependency>     <dependency>         <groupid>org.apache.maven.plugin-tools</groupid>         <artifactid>maven-plugin-tools-api</artifactid>         <version>3.0</version>     </dependency>     <dependency>         <groupid>org.apache.maven.plugin-testing</groupid>         <artifactid>maven-plugin-testing-harness</artifactid>         <version>3.0.0</version>         <scope>test</scope>     </dependency>     <dependency>         <groupid>junit</groupid>         <artifactid>junit</artifactid>         <version>4.11</version>         <scope>test</scope>     </dependency>     <dependency>         <groupid>org.apache.maven.plugins</groupid>         <artifactid>maven-resources-plugin</artifactid>         <version>2.6</version>     </dependency>     <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-compat</artifactid>         <version>3.0.4</version>     </dependency>     <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-model</artifactid>         <version>3.0.4</version>     </dependency> </dependencies> 

ok, think figured out issue aether: appears depend on version of maven-plugin-testing-harness being used. version <= 2.1 seems use sonatype aether. using set of dependencies resolves aether problem:

    <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-artifact</artifactid>         <version>3.0.5</version>     </dependency>      <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-compat</artifactid>         <version>3.0.5</version>     </dependency>      <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-plugin-api</artifactid>         <version>3.0.5</version>     </dependency>      <dependency>         <groupid>org.apache.maven.plugins</groupid>         <artifactid>maven-resources-plugin</artifactid>         <version>2.6</version>     </dependency>       <dependency>         <groupid>org.apache.maven</groupid>         <artifactid>maven-core</artifactid>         <version>3.0.5</version>     </dependency>        <dependency>         <groupid>org.apache.maven.plugin-tools</groupid>         <artifactid>maven-plugin-annotations</artifactid>         <version>3.1</version>     </dependency>     <dependency>         <!-- version 2.1 uses sonatype aether. after 2.1 uses eclipse aether. -->         <groupid>org.apache.maven.plugin-testing</groupid>         <artifactid>maven-plugin-testing-harness</artifactid>         <scope>test</scope>         <version>2.1</version>     </dependency>     <dependency>         <groupid>junit</groupid>         <artifactid>junit</artifactid>         <version>4.11</version>         <scope>test</scope>     </dependency> 

Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -