Java Gradle-未加载类:org.docx4j.jaxb.Context

Java Gradle-未加载类:org.docx4j.jaxb.Context,java,gradle,Java,Gradle,我有一个maven项目和旧的docx4j依赖项,我想更新到Java9。在更新期间,我将我的项目从maven更改为gradle 现在我在IntelliJ中有一个gradle项目,其中包含以下依赖项: dependencies { implementation('commons-io:commons-io:2.6') implementation('javax.xml.bind:jaxb-api:2.4.0-b180725.047') implementation('org.

我有一个maven项目和旧的docx4j依赖项,我想更新到Java9。在更新期间,我将我的项目从maven更改为gradle

现在我在IntelliJ中有一个gradle项目,其中包含以下依赖项:

dependencies {
    implementation('commons-io:commons-io:2.6')
    implementation('javax.xml.bind:jaxb-api:2.4.0-b180725.047')
    implementation('org.docx4j:docx4j:6.0.1')
    implementation('org.docx4j:docx4j-ImportXHTML:6.0.1')
    implementation('org.docx4j:docx4j-export-fo:6.0.1')
    testImplementation('junit:junit:4.12')
}
构建工作正常,但是如果我想打开一个.docx文件,使用Docx4J.load(…)或WordprocessingMLPackage.load(…),它会抛出一个运行时异常。 在调试模式下,我可以看到以下消息:类未加载:org.docx4j.jaxb.Context

此Context.java文件具有如下静态代码块:

static {
    ...
}
我认为这是特定于gradle的错误,因为我创建了一个新的maven项目,它的代码和依赖项与gradle项目相同,并且可以正常工作


有什么解决办法吗,或者我将来也应该使用maven吗?

在这里有一个特定于年级的答案

或改为“添加模块”,请参见示例:


或者

谢谢你的回答。第一个链接适合我。我又添加了2个依赖项(jaxb核心和jaxb impl),现在它可以工作了。我不知道为什么maven不需要这些依赖项。如果您想贡献您的工作Gradle文件,我会将其添加到docx4j:-)当然。与sun相比,我更喜欢glassfish,因此我有上面的依赖项,再加上这些:org.glassfish.jaxb:jaxb-core:2.3.0.1 org.glassfish.jaxb:jaxb-runtime:2.3.0.1