Sto riscontrando un problema nella configurazione di enhanan di datanucleus da utilizzare con un progetto del motore di app di google. Se uso il plugin ecanse datanucleus, tutto va bene, ma nel mio progetto di Maven ottengo uno strano errore di versione in conflitto.Versione in conflitto del potenziatore di datanucleus in un progetto del motore di app google mobile
mio POM ha queste DataNucleus riferimenti:
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>1.1.0</version>
</dependency>
...
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>maven-datanucleus-plugin</artifactId>
<version>1.1.0</version>
<configuration>
<mappingIncludes>**/*.class</mappingIncludes>
<verbose>true</verbose>
<enhancerName>ASM</enhancerName>
<api>JDO</api>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>
Quando provo a costruire il progetto ottengo il seguente errore:
Exception in thread "main" Plugin (Bundle) "org.datanucleus" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.0/**datanucleus-core-1.1.0.jar**" is already registered, and you are trying to register an identical plugin located at URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.3/**datanucleus-core-1.1.3.jar**." org.datanucleus.exceptions.NucleusException: Plugin (Bundle) "org.datanucleus" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.0/datanucleus-core-1.1.0.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/Users/drome/.m2/repository/org/datanucleus/datanucleus-core/1.1.3/datanucleus-core-1.1.3.jar." at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:437) at org.datanucleus.plugin.NonManagedPluginRegistry.registerBundle(NonManagedPluginRegistry.java:343) at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensions(NonManagedPluginRegistry.java:227 ) at org.datanucleus.plugin.NonManagedPluginRegistry.registerExtensionPoints(NonManagedPluginRegistry.jav a:159) at org.datanucleus.plugin.PluginManager.registerExtensionPoints(PluginManager.java:82) at org.datanucleus.OMFContext.(OMFContext.java:164) at org.datanucleus.enhancer.DataNucleusEnhancer.(DataNucleusEnhancer.java:171) at org.datanucleus.enhancer.DataNucleusEnhancer.(DataNucleusEnhancer.java:149) at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
Non capisco il motivo per cui DataNucleus tenuti Maven per scaricare DataNucleus -core-1.1.3.jar poiché questo non è referenziato in pom.xml
Inoltre non capisco perché datanucleus-core-1.1.3.jar sia registrato ...
Qualche idea? Grazie in anticipo ...
Non penso sia possibile escludere una versione diversa dello stesso artefatto. group-a artefatto-a 1,0 gruppo-c esclusi-artefatto –
ivo
Il plugin DN M2 fa l'unica ragionevole cosa può fare ; usa l'ultimo Non vedo altro modo di avere un plug-in M2 e di non dover rilasciare una nuova versione ogni volta che rilasciamo una nuova versione di un jar dipendente ed è ciò per cui sono stati introdotti gli intervalli di versione M2. Altre persone non hanno avuto la manipolazione di questo http://groups.google.com/group/google-appengine-java/browse_thread/thread/aeaffa3f33e1e4e2/095300c75cd9da39?lnk=gst&q=maven-datanucleus#095300c75cd9da39 Ovviamente l'aggiornamento di Google problema il loro jar plugin DN significherebbe che è irrilevante. – DataNucleus
Seguendo il collegamento che hai fornito, infatti, la modifica dell'ambito a "runtime" ha risolto il problema. Grazie per il supporto :-) – ivo