我最终得到了包含在 gradle build 中的 Oxygen Editor schemaDocumentation.sh 脚本。
我的build.gradle 到目前为止看起来像这样 - 我怀疑它仍在进行中。它完成了它的工作,HTML 生成到build/generated-html 文件夹,但它需要在OXYGEN_HOME 浴缸中安装氧气(包括许可证)。我可能会在未来的某一天修复它
apply plugin: 'java'
version = "1.0-SNAPSHOT"
ext {
generatedDir = new File(buildDir, "generated-html")
}
def OXYGEN_HOME = "/opt/java/oxygen"
def schemaFiles = ["page", "metadata"]
schemaFiles.each { pageName ->
task "${pageName}SchemaTask"(type: JavaExec) {
mkdir generatedDir
classpath = files([
"$OXYGEN_HOME",
"$OXYGEN_HOME/classes",
"$OXYGEN_HOME/lib",
"$OXYGEN_HOME/lib/oxygen.jar",
"$OXYGEN_HOME/lib/oxygenDeveloper.jar",
"$OXYGEN_HOME/lib/fop.jar",
"$OXYGEN_HOME/lib/xmlgraphics-commons-1.5.jar",
"$OXYGEN_HOME/lib/batik-all-1.7.jar",
"$OXYGEN_HOME/lib/xercesImpl.jar",
"$OXYGEN_HOME/lib/xml-apis.jar",
"$OXYGEN_HOME/lib/org.eclipse.wst.xml.xpath2.processor_1.2.0.jar",
"$OXYGEN_HOME/lib/icu4j.jar",
"$OXYGEN_HOME/lib/saxon.jar",
"$OXYGEN_HOME/lib/saxon9ee.jar",
"$OXYGEN_HOME/lib/log4j.jar",
"$OXYGEN_HOME/lib/resolver.jar",
"$OXYGEN_HOME/lib/oxygen-emf.jar",
"$OXYGEN_HOME/lib/commons-httpclient-3.1.jar",
"$OXYGEN_HOME/lib/commons-codec-1.3.jar",
"$OXYGEN_HOME/lib/commons-logging-1.0.4.jar",
"$OXYGEN_HOME/lib/httpcore-4.3.2.jar",
"$OXYGEN_HOME/lib/httpclient-cache-4.3.5.jar",
"$OXYGEN_HOME/lib/httpclient-4.3.5.jar",
"$OXYGEN_HOME/lib/fluent-hc-4.3.5.jar",
"$OXYGEN_HOME/lib/httpmime-4.3.5.jar",
"$OXYGEN_HOME/lib/commons-logging-1.1.3.jar",
"$OXYGEN_HOME/lib/commons-codec-1.6.jar"
].toList())
main = 'ro.sync.xsd.documentation.XSDSchemaDocumentationGenerator'
jvmArgs = ["-Djava.awt.headless=true"]
args = ["schema/${pageName}.xsd", "-format:html", "-split:location", "-out:$generatedDir/${pageName}.html"]
}
}
task schema(dependsOn: tasks.matching { Task task -> task.name.endsWith("SchemaTask")}) {
}
defaultTasks 'schema'
我在这篇文章http://jakub.marchwicki.pl/posts/2015/08/26/get-your-xsd-docs-as-build-process/中记录了在构建过程中从 XSD 构建文档的整个方法