Как установить Apache POI в Grails 2.3.11 - PullRequest
0 голосов
/ 10 мая 2018

Используя пример Apache , я пытаюсь загрузить Apache POI в мое приложение Grails.У меня есть GGTS (настройка клона Eclipse для разработки Grails) в качестве моей IDE.Когда я пытаюсь создать новый объект HSSFWorkbook, например, так: HSSFWorkbook workbook = new HSSFWorkbook(), IDE говорит мне, что я не могу разрешить класс HSSFWorkbook.Как правильно настроить Apache POI, чтобы он работал в Grails 2.3.11?Я должен работать с файлами Excel, и Apache POI дает мне больше контроля.Я видел, как это работает в другом приложении Grails 2.3.11, поэтому я знаю, что это возможно.Я предпочитаю последнюю версию, поддерживаемую в Grails 2.3.11.

BuildConfig.groovy

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
grails.server.port.http=8070
//grails.project.war.file = "target/${appName}-${appVersion}.war"

grails.project.fork = [
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
    //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    // configure settings for the run-app JVM
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the Console UI JVM
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits("global") {
        // specify dependency exclusions here; for example, uncomment this to disable ehcache:
        // excludes 'ehcache'
    }
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
    checksums true // Whether to verify checksums on resolve
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

    repositories {
        inherits true // Whether to inherit repository definitions from plugins

        grailsPlugins()
        grailsHome()
        mavenLocal()
        grailsCentral()
        mavenCentral()
        // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
        //mavenRepo "http://repository.codehaus.org"
        //mavenRepo "http://download.java.net/maven/2/"
        //mavenRepo "http://repository.jboss.com/maven2/"
    }

    dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        // runtime 'mysql:mysql-connector-java:5.1.27'
        // runtime 'org.postgresql:postgresql:9.3-1100-jdbc41'
        test "org.grails:grails-datastore-test-support:1.0-grails-2.3"
        runtime 'org.codehaus.groovy:groovy-all:2.4.7'
        runtime 'org.apache.poi:poi:3.14'
        runtime 'org.apache.poi:poi-ooxml:3.14'
    }

    plugins {
        // plugins for the build system only
        build ":tomcat:7.0.54"

        // plugins for security
        compile ':spring-security-core:2.0.0'
        compile ':spring-security-ldap:2.0.0'

        // plugins for the compile step
        compile ":scaffolding:2.0.3"
        compile ':cache:1.1.7'

        // plugins needed at runtime but not for compilation
        runtime ":hibernate4:4.3.5.4"
        runtime ":database-migration:1.4.0"
        runtime ":jquery:1.11.1"
        runtime ":resources:1.2.8"
        runtime ':console:1.5.12'
        // Uncomment these (or add new ones) to enable additional resources capabilities
        //runtime ":zipped-resources:1.0.1"
        //runtime ":cached-resources:1.1"
        //runtime ":yui-minify-resources:0.1.5"

        // An alternative to the default resources plugin is the asset-pipeline plugin
        //compile ":asset-pipeline:1.6.1"

        // Uncomment these to enable additional asset-pipeline capabilities
        //compile ":sass-asset-pipeline:1.5.5"
        //compile ":less-asset-pipeline:1.5.3"
        //compile ":coffee-asset-pipeline:1.5.0"
        //compile ":handlebars-asset-pipeline:1.3.0.1"
    }
}

1 Ответ

0 голосов
/ 11 мая 2018

Измените свой блок зависимостей, чтобы установить зависимость времени компиляции, а также удалите ненужные зависимости groovy:

dependencies {
    test "org.grails:grails-datastore-test-support:1.0-grails-2.3"
    compile 'org.apache.poi:poi:3.14'
    compile 'org.apache.poi:poi-ooxml:3.14'
}

Grails уже предоставляет подходящую версию Groovy, поэтому вам не нужно ее предоставлять. Зависимости POI будут необходимы для компиляции кода, поэтому они должны зависеть от времени компиляции.

Если это не решит вашу проблему, то, по крайней мере, возможно, что GGTS неправильно загружает зависимости, но я сомневаюсь, что это будет так.

...