Gradle:path或baseDir都可以为null或空字符串
我曾尝试构建一个插件,使用gradle运行pdflatex(以及稍后的bibtex) 不幸的是,我遇到了一个我不理解的错误:path和baseDir都不能为null或空字符串。path='null'basedir='/home/me/paper' 这是我的身材。格雷德尔:Gradle:path或baseDir都可以为null或空字符串,gradle,pdflatex,gradle-plugin,Gradle,Pdflatex,Gradle Plugin,我曾尝试构建一个插件,使用gradle运行pdflatex(以及稍后的bibtex) 不幸的是,我遇到了一个我不理解的错误:path和baseDir都不能为null或空字符串。path='null'basedir='/home/me/paper' 这是我的身材。格雷德尔: apply plugin: LaTeXPlugin project.latex{ documentBase = "research_paper" cookDir = "cooked" jobname
apply plugin: LaTeXPlugin
project.latex{
documentBase = "research_paper"
cookDir = "cooked"
jobname = "job"
pdflatexargs = ["-synctex=1", "-interaction=nonstopmode", "-shell-escape"]
rawDir = "."
}
class LaTeXPlugin implements Plugin<Project>{
@Override
void apply(Project project){
project.extensions.create("latex", LaTeXPluginExtension)
def pdflatex = "pdflatex"
def bibtex = "bibtex"
project.task("pdfLaTeX", type:Exec){
doFirst {
println "CookDir $project.latex.cookDir"
println "PdfLaTeX $project.latex.jobname"
println "args: " + project.latex.pdflatexargs
println "docBase: " + project.latex.documentBase
println "rawDir:" + project.latex.rawDir
println "path: $project.path"
println "$project.rootDir"
}
outputs.dir(project.latex.cookDir)
outputs.upToDateWhen{false}
commandLine =[pdflatex] + project.latex.pdflatexargs + ["-jobname=$project.latex.jobname", "-output-directory=$project.latex.cookDir"] + [project.latex.documentBase + '.tex']
doLast{
println "PdfLaTeX done."
}
}
}
}
class LaTeXPluginExtension {
String documentBase
String jobname
String[] pdflatexargs
String cookDir
String rawDir
}
希望你们中的一位能给我指出正确的方向。
提前感谢。发现了错误
出于某种原因,格雷德尔不喜欢:
outputs.dir(project.latex.cookDir)
删除它后,我只需修复一些范围错误,而不是编写新插件并显式执行所有配置。您可以尝试新的gradle插件来运行latex:
outputs.dir(project.latex.cookDir)