【发布时间】:2018-09-19 10:20:46
【问题描述】:
我正在使用 Maven 和 Eclipse Photon 构建一个 GWT + App Engine + JDO 项目(当我从命令行构建项目时出现同样的错误)。编译阶段后Datanucleus通知我错误:
Failed to execute goal org.datanucleus:maven-datanucleus-plugin:3.2.0-m1:enhance (default) on project gwtAppEngineJDOProjectName: Error while executing the DataNucleus tool 'org.datanucleus.enhancer.DataNucleusEnhancer'. Error while executing process. Cannot run program "/bin/sh": error=7
在我的项目结构中有一个META-INF/jdoconfig.xml src/main/resources。在 war 插件执行后,META-INF/jdoconfig.xml 已正确存储在 /target/WARFOLDER/MET-INF/ 文件夹中。
我的实际 jdo-conf:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">
<persistence-manager-factory name="transactions-optional">
<property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="appengine"/>
<property name="datanucleus.cache.level2.mode" value="none"/>
<property name="javax.jdo.option.NontransactionalRead" value="true"/>
<property name="javax.jdo.option.NontransactionalWrite" value="true"/>
<property name="javax.jdo.option.RetainValues" value="true"/>
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
<property name="datanucleus.appengine.singletonPMFForName" value="true"/>
</persistence-manager-factory>
</jdoconfig>
我pom.xml的自动增强过程
<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>maven-datanucleus-plugin</artifactId>
<version>3.2.0-m1</version>
<configuration>
<api>JDO</api>
<props>${basedir}/datanucleus.properties</props>
<verbose>true</verbose>
<enhancerName>ASM</enhancerName>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>3.1.3</version>
</dependency>
</dependencies>
</plugin>
如何解决 error=7 Datanucleus 错误? 谢谢。
【问题讨论】:
-
你真的应该使用 datanucleus-maven-plugin, central.maven.org/maven2/org/datanucleus/… 然后当你这样做了,发布这个“错误 7”来自... maven?
-
你好@BillyFrost。实际上,我使用的是 3.2.0-release 版本的 datanucleus-maven-plugin。错误来自 Maven:
[ERROR] Failed to execute goal org.datanucleus:maven-datanucleus-plugin:3.2.0-m1:enhance (default)... Cannot run program "/bin/sh": error=7, Arguments list too long。在 Datanucleus 插件配置中,我将 fork 选项设置为 false,以防止 clases/mapping-files 的大型命令行。我会编辑我的问题。谢谢!
标签: java maven gwt datanucleus