Was ich zu tun suche, ist Java-Annotationsverarbeitung auf Scala-gebauten Klassendateien auszuführen.Ausführen von Java-Quellenanmerkungsverarbeitung auf Scala-basierten Klassendateien
Ich kann das javac durch den Aufruf manuell nach
Aufbaujavac -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
aber ich will es als Teil eines gradle Build tun. Letztendlich möchte ich, dass Jenkins Plugins in Scala erstellt werden und die Plugins für die Quellennummerierung mit sezpoz verarbeitet werden müssen. Daher Gradle verwenden.
Das ist, was ich bisher, aber es nicht
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"
}
Die Probleme sind, dass es sie nicht arbeiten zu annotieren scheint die Klassendateien zu finden, funktioniert es auf jeden Fall manuell und es immer denkt Die Aufgabe ist aktuell.
Dies ist der repo aber Scala mag einen letzten Java8 Compiler