【问题标题】:asciidoctorj-pdf produces ArrayIndexOutOfBoundsException when more than one backends are defined当定义多个后端时,asciidoctorj-pdf 会产生 ArrayIndexOutOfBoundsException
【发布时间】:2019-01-22 09:20:14
【问题描述】:

我使用 gradle 和 asciidoctor-gradle-plugin 来生成各种格式的文档。我的build.gradle 看起来像:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
      classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.9.2'
      classpath 'org.asciidoctor:asciidoctorj-diagram:1.5.0'
      classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16'
   }
}

apply plugin: 'java'
apply plugin: 'org.asciidoctor.convert'


asciidoctorj {
    version = '1.6.0'
}

asciidoctor {
    resources{
        from('src/images')
        into './images'
    }
    backends 'pdf', 'docbook', 'html5'
    requires 'asciidoctor-diagram'
    sourceDir = file('src/')
    outputDir = file('build/')
    attributes \
        'imagesoutdir': "./images"
}

asciidoctor 任务运行时出现错误:

10:09:08 AM: Executing task 'asciidoctor'...

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at org.asciidoctor.internal.EnvironmentInjector.inject(EnvironmentInjector.java:31)
    at org.asciidoctor.internal.JRubyAsciidoctor.injectEnvironmentVariables(JRubyAsciidoctor.java:142)
    at org.asciidoctor.internal.JRubyAsciidoctor.createJRubyAsciidoctorInstance(JRubyAsciidoctor.java:129)
    at org.asciidoctor.internal.JRubyAsciidoctor.create(JRubyAsciidoctor.java:82)
    at org.asciidoctor.Asciidoctor$Factory.create(Asciidoctor.java:726)
    at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.getAsciidoctorInstance(AsciidoctorJavaExec.groovy:73)
    at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.run(AsciidoctorJavaExec.groovy:39)
    at org.asciidoctor.gradle.backported.AsciidoctorJavaExec.main(AsciidoctorJavaExec.groovy:195)
:asciidoctor FAILED

奇怪的是当backends 设置为1 时错误消失了

backends 'pdf'

有人知道怎么解决吗?

【问题讨论】:

    标签: gradle asciidoc asciidoctor asciidoctor-pdf


    【解决方案1】:

    作为一种解决方法,您可以尝试使用旧版本的 asciidoctor-gradle-plugin,例如

    org.asciidoctor:asciidoctor-gradle-plugin:1.5.8
    

    我不确定这些版本之间有什么区别,但 1.5.8 似乎对我有用。

    【讨论】:

      猜你喜欢
      • 2016-11-11
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 2017-02-26
      相关资源
      最近更新 更多