简体   繁体   English

Grails 3 升级 - 无法解析类 grails.plugin.rendering.pdf.PdfRenderingService

[英]Grails 3 upgrade - unable to resolve class grails.plugin.rendering.pdf.PdfRenderingService

I inherited a multi-module grails application based on Grails 2.5.4.我继承了一个基于 Grails 2.5.4 的多模块 grails 应用程序。

I installed groovy 3.0.4 and grails 3.3.11, and I completed the grails upgrade tasks base on the tutorial provided on the official website ( https://docs.grails.org/3.0.x/guide/upgrading.html ).我安装了 groovy 3.0.4 和 grails 3.3.11,根据官网提供的教程( https://docs.grails.org/3.0.x/guide/upgrading.html )完成了 grails 升级任务。

I'm dealing with tons of code adaptation but I'm bumping on a particular issue as I try to build the project, I'm facing the following issue:我正在处理大量代码改编,但在尝试构建项目时遇到了一个特定问题,我面临以下问题:

C:\repo\upgraded-app\myapp-web\grails-app\services\bitt\PdfRenderingService.groovy: 9: unable to resolve class grails.plugin.rendering.pdf.PdfRenderingService
 @ line 9, column 1.
   @Transactional
   ^

The code involved is the following:涉及的代码如下:

import com.lowagie.text.pdf.BaseFont
import grails.transaction.Transactional
import grails.util.Environment
import org.w3c.dom.Document
import org.xhtmlrenderer.pdf.ITextRenderer

@Transactional
class PdfRenderingService extends grails.plugin.rendering.pdf.PdfRenderingService {
...

and my build.gradle file is the following:我的 build.gradle 文件如下:

buildscript {
    repositories {
        mavenLocal()
        maven { url "https://repo.grails.org/grails/core" }
    }
    dependencies {
        classpath "org.grails:grails-gradle-plugin:$grailsVersion"
        classpath "org.grails.plugins:hibernate5:${gormVersion-".RELEASE"}"
        classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.15.1"
    }
}

version "0.1"
group "bitt.web"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"asset-pipeline"
apply plugin:"org.grails.grails-gsp"

repositories {
    mavenLocal()
    maven { url "https://repo.grails.org/grails/core" }
}

dependencies {  
    compile project(':../bitt-core')
    compile "org.springframework.boot:spring-boot-starter-logging"
    compile "org.springframework.boot:spring-boot-autoconfigure"
    compile "org.grails:grails-core"
    compile "org.springframework.boot:spring-boot-starter-actuator"
    compile "org.springframework.boot:spring-boot-starter-tomcat"
    compile "org.grails:grails-web-boot"
    compile "org.grails:grails-logging"
    compile "org.grails:grails-plugin-rest"
    compile "org.grails:grails-plugin-databinding"
    compile "org.grails:grails-plugin-i18n"
    compile "org.grails:grails-plugin-services"
    compile "org.grails:grails-plugin-url-mappings"
    compile "org.grails:grails-plugin-interceptors"
    compile "org.grails.plugins:cache"
    compile "org.grails.plugins:async"
    compile "org.grails.plugins:scaffolding"
    compile "org.grails.plugins:events"
    compile "org.grails.plugins:hibernate5"
    compile "org.hibernate:hibernate-core:5.1.16.Final"
    compile "org.grails.plugins:gsp"

    compile 'org.grails.plugins:spring-security-core:3.2.3'
    compile 'org.grails.plugins:spring-security-acl:3.2.1'
    compile 'org.grails.plugins:grails-markdown:3.0.0'
    compile 'org.grails.plugins:rendering:2.0.3'
    compile 'org.grails.plugins:excel-export:2.1'
    compile 'org.grails.plugins:grails-cookie:2.0.3'
    compile 'org.grails.plugins:spring-security-ui:3.0.2'
    compile 'org.grails.plugins:http-builder-helper:1.1.0'
    compile 'org.grails.plugins:audit-logging:3.0.6'

    console "org.grails:grails-console"
    profile "org.grails.profiles:web"
    runtime "org.glassfish.web:el-impl:2.1.2-b03"
    runtime "com.h2database:h2"
    runtime "org.postgresql:postgresql:9.4-1203-jdbc42"
    runtime "org.apache.tomcat:tomcat-jdbc"
       runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.15.1"
    testCompile "org.grails:grails-gorm-testing-support"
    testCompile "org.grails.plugins:geb"
    testCompile "org.grails:grails-web-testing-support"
    testCompile "org.grails.plugins:geb:1.1.2"
    testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
    testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"
    testRuntime "org.seleniumhq.selenium:selenium-chrome-driver:2.47.1"
}

bootRun {
    jvmArgs('-Dspring.output.ansi.enabled=always')
    addResources = true
    String springProfilesActive = 'spring.profiles.active'
    systemProperty springProfilesActive, System.getProperty(springProfilesActive)
}

tasks.withType(Test) {
    systemProperty "geb.env", System.getProperty('geb.env')
    systemProperty "geb.build.reportsDir", reporting.file("geb/integrationTest")
    systemProperty "webdriver.chrome.driver", System.getProperty('webdriver.chrome.driver')
    systemProperty "webdriver.gecko.driver", System.getProperty('webdriver.gecko.driver')
}

assets {
    minifyJs = true
    minifyCss = true
    includes = ["fonts/*"]
}

The code above mentioned is working fine in Grails 2... but now provokes a compilation error with Grails 3 ... any idea why ?上面提到的代码在 Grails 2 中运行良好......但现在引发了 Grails 3 的编译错误......知道为什么吗?

Thanks.谢谢。

Upgrading between major Grails versions is not that easy, as Gradle config has big differences.在主要 Grails 版本之间升级并不是那么容易,因为 Gradle 配置有很大的不同。

I suggest you use Grails Starter to get a sample app, unpack the build.gradle , gradle.properties from there, and merge your old config (mostly dependencies) into it.我建议您使用Grails Starter获取示例应用程序,从那里解压build.gradlegradle.properties ,并将您的旧配置(主要是依赖项)合并到其中。

Configuration has also changed from .groovy files to .yml, consider migrating them as well.配置也从 .groovy 文件更改为 .yml,也考虑迁移它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM