1
我正在做的是在scala構建的類文件上執行java註釋處理。對Scala構建的類文件運行java源碼註釋處理
我可以手動調用javac的建設
javac -cp ".../.m2/repository/net/java/sezpoz/sezpoz/1.11/sezpoz-1.11.jar:." \
-proc:only -processor net.java.sezpoz.impl.Indexer6 \
-verbose mypackage.ScalaUseMyAnnotations$Inner
後這樣做,但我想這樣做的gradle這個構建的一部分。最終,我希望這可以在Scala中創建Jenkins插件,並且需要使用sezpoz處理源插件。因此使用Gradle。
這是我有這麼遠,但它不工作
group 'mytest'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'scala'
sourceSets.main.scala.srcDir "src/main/java"
sourceSets.main.java.srcDirs = []
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
jar {
from {
(configurations.runtime).collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class': 'mypackage.Main'
}
}
ext {
versions = [
scala : '2.11.8',
scalatest : '2.2.6'
]
}
task annotate (type: JavaCompile) {
source = sourceSets.main.output.classesDir
include 'mypackage.ScalaUseMyAnnotations$Inner'
classpath = sourceSets.main.compileClasspath
destinationDir = sourceSets.main.output.classesDir
outputs.upToDateWhen { false }
println("[annotate] ${sourceSets.main.output.classesDir}")
}
annotate.options.compilerArgs = ['-proc:only', '-processor', 'net.java.sezpoz.impl.Indexer62', '-verbose']
task run(type: JavaExec, dependsOn: compileScala) {
main = 'mypackage.Main'
classpath sourceSets.main.runtimeClasspath
classpath configurations.runtime
}
compileScala.doLast {
tasks.annotate
}
dependencies {
compile group: 'net.java.sezpoz', name: 'sezpoz', version: '1.11'
runtime group: 'org.scala-lang', name: 'scala-library', version: "$versions.scala"
compile group: 'org.scala-lang', name: 'scala-library', version: "$versions.scala"
}
的問題是,似乎不找到類文件註釋它們,這當然手工作品,它總是認爲該任務是最新的。
這是repo但斯卡拉喜歡最近Java8編譯