此项目之前的所有工作都有效。我将Grails从3.3.1更新到3.3.2,它仍然有用。我也更新了Gradle,现在它不起作用。
gradlew bootRun和gradlew war工作以及war文件部署到Tomcat并且工作正常。
要生成pdf文档,我有这些依赖项:
compile "org.xhtmlrenderer:flying-saucer-core:9.1.9"
compile "org.xhtmlrenderer:flying-saucer-pdf:9.1.9"
compile "com.lowagie:itext:4.2.1"
清洁之后我运行了grails编译'并得到这个:
General error during class generation: java.lang.NoClassDefFoundError: Unable to load class org.xhtmlrenderer.pdf.ITextRenderer due to missing dependency Lcom/lowagie/text/Document;
java.lang.RuntimeException: java.lang.NoClassDefFoundError: Unable to load class org.xhtmlrenderer.pdf.ITextRenderer due to missing dependency Lcom/lowagie/text/Document;
at org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1101)
at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1079)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:537)
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:175)
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:56)
at org.gradle.api.internal.tasks.compile.daemon.AbstractDaemonCompiler$CompilerRunnable.run(AbstractDaemonCompiler.java:87)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:36)
at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:46)
at org.gradle.workers.internal.WorkerDaemonServer.execute(WorkerDaemonServer.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
With stacktrace:
java.util.concurrent.ExecutionException: org.gradle.tooling.BuildException: Could not execute build using Gradle installation '/home/chris/.sdkman/candidates/gradle/current'.
at java_util_concurrent_Future$get.call(Unknown Source)
at run-app.run(run-app.groovy:89)
当我做这个pdf时,grails渲染插件不起作用。所以我直接使用Flying Saucer库创建了一个小概念验证应用程序。它使用与上面给出的相同的依赖关系,代码是相同的。这个小的Grails应用程序仍然适用于' grails compile'和' grails run-app'
在Idea中,即使Idea设置为使用应用程序的Gradle包装器,我也会遇到完全相同的问题。
我无处导入或使用com.lowagie.text.Document - 错误所抱怨的类。这个东西在使用gradlew时效果很好,并且无论我运行或编译应用程序的方式,它都能正常工作。该类在itext:4.2.1依赖项中。我下载了罐子然后看了。
导入并使用org.xhtmlrenderer.pdf.ITextRenderer。 Idea没有任何问题。如果有人试图导入或使用不在类路径上的类,Idea通常会发出警告。
我尝试恢复到之前版本的Gradle,但没有运气。
这不是一个表演停止因为gradlew仍然有效。但到底是怎么回事?有任何想法吗?
答案 0 :(得分:0)
我们处于grails-3.3.2。我们面临类似的问题。我们尝试按以下顺序运行一些命令,然后对我们有用。稍后我们没有任何编译问题。
现在编译应该没有任何问题。