datanucleus工具如何运行文件进行增强



为了增强类并使普通Java类"持久性";,我使用过DataNucleus增强器。我遇到的问题是:没有文件可以运行datanucleus工具(错误日志如下所示(,因此datanucleum没有增强类。datanucleus如何运行文件进行增强?

Pom.xml

数据核的依赖关系

<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>4.0.5</version>
<!--<scope>compile</scope> -->
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>4.0.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>4.0.9</version>
<scope>runtime</scope>
</dependency>

用于增强的Datanucleus插件

<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>5.2.1</version>
<configuration>
<api>JDO</api>
<persistenceUnitName>MyUnit_Example</persistenceUnitName> <!-- todo: change persistance name-->                   
<log4jConfiguration>${pom.basedir}/data/log4j.properties</log4jConfiguration>
<generateConstructor>true</generateConstructor>
<verbose>true</verbose>
<alwaysDetachable>true</alwaysDetachable>
<metadataIncludes>${pom.basedir}/dir_name_1/dir_name_2/model**/*.class</metadataIncludes>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>

警告列表

[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for org.mortbay.jetty:servlet-api:jar:2.5-6.0.0beta12 is missing, no dependency information available
[INFO] 
[INFO] --- datanucleus-maven-plugin:5.2.1:enhance (default-cli) @ forsteinrichtung ---
[WARNING] No files to run DataNucleus tool 'org.datanucleus.enhancer.DataNucleusEnhancer'

我的类增强设置,我希望它能帮助您找到解决方案。您需要添加一个persistence.xml,更新Datanucleus依赖项工件版本,并为Datanucleus添加一个javax.jdo依赖项,该依赖项为持久性提供了一个到java模型抽象的接口。

pom.xml

Datanucleus 的需求

<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-api-jdo</artifactId>
<version>5.2.7</version>
<scope>compile</scope>
</dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>5.2.9</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>5.2.9</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>javax.jdo</artifactId>
<version>3.2.0-m11</version>
</dependency>

用于增强的Datanucleus插件

<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-maven-plugin</artifactId>
<version>5.2.1</version>
<configuration>
<api>JDO</api>
<persistenceUnitName>h2</persistenceUnitName>
<log4jConfiguration>${project.basedir}/data/config/log4j.properties</log4jConfiguration>
<verbose>true</verbose>
<fork>false</fork>
</configuration>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>5.2.9</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>

persistence.xml

CCD_ 1的位置是"0";资源>META-INF>persistence.xml";。如果CCD_ 2不存在,则需要创建新的CCD_。

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="h2" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test" />
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.show_sql" value="true" />
<property name="javax.persistence.schema-generation.database.action" value="create"/>
<property name="javax.persistence.schema-generation.create-source" value="script"/>
<property name="javax.persistence.schema-generation.create-script-source" value="sql/create.sql"/>
<!--<property name="javax.persistence.schema-generation.drop-source" value="script"/> -->
<!--<property name="javax.persistence.schema-generation.drop-script-source" value="sql/drop.sql"/> -->
<property name="javax.persistence.sql-load-script-source" value="sql/initial_data.sql" />
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value="sa"/>
</properties>
</persistence-unit>

最新更新