尝试在gradle中使用ant任务编译jrxml时,不会生成jasper文件。在gradle控制台中看到以下错误。请为此提供指针。以下是带有Ant任务的错误gradle构建文件。
注意:所有必需的jasper和其他依赖项jar都放在libs目录下
错误:
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] ERROR: Could not compile report [/builds/DFSDocker.Admin/rhel_dec_release/compileux/customjrxml/src/main/jasperreports/UBBDFail.jrxml]. Exception: net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 24: unable to resolve class net.sf.jasperreports.compilers.GroovyEvaluator
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 24, column 1.
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 34: unable to resolve class JRFillParameter
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 34, column 5.
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 35: unable to resolve class JRFillParameter
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 35, column 5.
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 36: unable to resolve class JRFillParameter
2020-10-28T15:09:51.520+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 36, column 5.
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 37: unable to resolve class JRFillParameter
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 37, column 5.
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 38: unable to resolve class JRFillParameter
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 38, column 5.
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] calculator_UBBDFail_1603897790979_43679: 39: unable to resolve class JRFillParameter
2020-10-28T15:09:51.521+0000 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:jrc] @ line 39, column 5.
build.gradle :apply plugin: 'java'
repositories {
mavenCentral()
flatDir {
println 'in repositories'
dirs 'libs'
}
}
configurations.create('jasperreports')
configurations.jasperreports {
transitive = true
}
dependencies {
jasperreports fileTree(dir: 'libs',include: '*.jar')
}
task compileJasperJava {
def jasperSourceDir = file('customjrxml/src/main/jasperreports')
def jasperTargetDir = file('customjrxml/build/classes/main/jasperreports')
def compiler = file('customjrxml/build/classes/main/jasperreports')
ant {
taskdef(name: 'jrc', classname: 'net.sf.jasperreports.ant.JRAntCompileTask', classpath: configurations.jasperreports.asPath)
jasperTargetDir.mkdirs()
jrc(srcdir: jasperSourceDir, destdir:jasperTargetDir,compiler:'net.sf.jasperreports.compilers.JRGroovyCompiler') {
include(name:'**/*.jrxml')
}
}
}
classes.dependsOn compileJasperJava
最佳答案
在build.gradle下面添加突出显示的(类路径块-在使用前删除**)可解决碧 Jade 生成问题。
apply plugin: 'java'
repositories {
mavenCentral()
flatDir {
println 'in repositories'
dirs 'libs'
}
}
configurations.create('jasperreports')
configurations.jasperreports {
transitive = true
}
dependencies {
jasperreports fileTree(dir: 'libs',include: '*.jar')
}
task compileJasperJava {
def jasperSourceDir = file('customjrxml/src/main/jasperreports')
def jasperTargetDir = file('customjrxml/build/classes/main/jasperreports')
ant {
taskdef(name: 'jrc', classname: 'net.sf.jasperreports.ant.JRAntCompileTask', classpath: configurations.jasperreports.asPath)
jasperTargetDir.mkdirs()
jrc(srcdir: jasperSourceDir, destdir:jasperTargetDir) {
include(name:'**/*.jrxml')
**classpath {
pathElement(path: configurations.jasperreports.asPath)
}**
}
}
}
classes.dependsOn compileJasperJava
引用文章:http://gradle.1045684.n5.nabble.com/Classpath-issue-with-jasperreports-taskdef-td3275141.html
关于gradle - 使用gradle将jrxml转换为碧 Jade ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64576999/