gradle - 使用gradle将jrxml转换为碧 Jade

标签 gradle ant jasper-reports

尝试在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/

相关文章:

java - 使用 Ant 删除重复文件?

java - 将 JAR 添加到 Visual Studio 2015 Android Ant Java 项目

java - 拉伸(stretch)(如果数据超出则溢出)jasper 报告中的文本字段

android - Gradle同步不会自动解析带有@aar批注的Android库项目依赖项

gradle - 在Gradle 5.5.1中将子项目已解决的依赖项添加到Earlib

java - 哪里可以下载 ANT 1.8.3 的预发行版本?

grails - 在Grails的Jasper中将集合用作参数

java - 如何显示时间(HH :mm) in bar chart value expression?

android - gradle依赖中的compile,testCompile和provided有什么区别

android - Android Studio中的ADB