2015-02-21 2 views
0

Я пытаюсь создать проект maven с использованием Datanucleus в качестве абстракции базы данных. Однако, когда я пытаюсь mvn datanucleus:schema-create, я получаю следующее сообщение об ошибке:Datanucleus + Maven: не найти основной класс SchemaTool

[ERROR] -------------------- 
[ERROR] Standard error from the DataNucleus tool + org.datanucleus.store.schema.SchemaTool : 
[ERROR] -------------------- 
[ERROR] Error: Could not find or load main class org.datanucleus.store.schema.SchemaTool 

соответствующие части из файла pom.xml являются:

<dependencies> 
    <dependency> 
     <groupId>javax.jdo</groupId> 
     <artifactId>jdo-api</artifactId> 
     <version>3.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.datanucleus</groupId> 
     <artifactId>datanucleus-core</artifactId> 
     <version>4.0.4</version> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.datanucleus</groupId> 
     <artifactId>datanucleus-api-jdo</artifactId> 
     <version>4.0.4</version> 
    </dependency> 
    <dependency> 
     <groupId>org.datanucleus</groupId> 
     <artifactId>datanucleus-rdbms</artifactId> 
     <version>4.0.4</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.34</version> 
    </dependency> 
</dependencies> 


<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <!-- <version>3.2</version> --> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.datanucleus</groupId> 
      <artifactId>datanucleus-maven-plugin</artifactId> 
      <version>4.0.0-release</version> 


      <configuration> 
       <api>JDO</api> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>process-classes</phase> 
        <goals> 
         <goal>enhance</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

И файл persistence.xml в/SRC/Основные/ресурсы/META-INF/persistence.xml, содержащие следующее:

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd» версия = "2.0">

<!-- JDO tutorial "unit" --> 
<persistence-unit name="Tutorial"> 
    <class>a.b.c.MyClass</class> 
    <exclude-unlisted-classes /> 
    <properties> 
     <property name="javax.jdo.option.PersistenceUnitName" value="Tutorial" /> 
     <property name="javax.jdo.option.ConnectionURL" value="jdbc:mysql://localhost/mydb" /> 
     <property name="javax.jdo.option.ConnectionDriverName" 
      value="com.mysql.jdbc.Driver" /> 
     <property name="javax.jdo.option.ConnectionUserName" value="myuser" /> 
     <property name="javax.jdo.option.ConnectionPassword" value="mypass" /> 
     <property name="datanucleus.schema.autoCreateAll" value="true" /> 
     <property name="datanucleus.schema.validateTables" value="true" /> 
     <property name="datanucleus.schema.validateConstraints" 
      value="true" /> 
     <property name="javax.jdo.PersistenceManagerFactoryClass" 
      value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory" /> 
    </properties> 
</persistence-unit> 

На мой неопытный взгляд это выглядит как все на месте, но он не работает.

ответ

1

Возможно, ваш <scope>runtime</scope> вызывает проблему, потому что этот фляга содержит этот класс. Независимо от того, являетесь вы или нет, вы можете легко включить Maven debug --debug в командной строке и посмотреть, что находится в CLASSPATH для этой операции.

+0

Большое спасибо, что немного помогло. Теперь я получаю новую ошибку, я разместил вопрос здесь: http://stackoverflow.com/questions/28658794/datanucleus-maven-schema-create-fails. Был бы благодарен за любую помощь. – Ibolit