カスタム gradle タスクを実行して jsp ファイルをプリコンパイルしようとすると、エラーが発生します。私のタスクは次のようになります。
task compile_jsp(dependsOn: 'compileJava') << {
//Define master classpath
def masterpath = ant.path(id: 'master-classpath') {
fileset(dir: "${rootDir}/build/libs"){
include(name: '**.jar')
}
fileset(dir: sourceSets.main.output.classesDir) {
include(name: '**/*.class')
}
fileset(dir: "${rootDir}/src/main"){
include(name: '**/*.java')
}
}
ant.taskdef(classname: 'org.apache.jasper.JspC', name: 'jasper', classpath: configurations.jasper.asPath + masterpath)
ant.jasper(uriRoot: "${rootDir}/src/main/webapp/", outputDir: "${rootDir}/src/main/webapp/WEB-INF/" + "${compileJspOutputDir}/", webXmlFragment: "${rootDir}/src/main/webapp/WEB-INF/generated_web.xml", addWebXmlMappings: "true")
}
私が得るエラーは次のようなものです:
The value for the useBean class attribute <class> is invalid.
sourceSets.main.output.classesDir
次のように定義するとタスクがうまく機能するため、プロジェクト内のクラスの場所に関連していると思います。
sourceSets.main.output.classesDir = "${rootDir}/src/main/webapp/WEB-INF/classes"
そうしないと、前述のエラーが発生します。
クラスディレクトリを変更せずにこれを実行する方法はありますか?