Я использую Gradle на Windows, и, к сожалению, путь к классу превышает предел пути Windows. Поэтому я пробую обходной путь, указанный в Как я могу создать jar-путь в Gradle , в котором я создаю новый jar-файл с файлом манифеста, содержащим весь путь к классу. Я могу создать новый jar-файл с правильным classpath, добавленным в его файл манифеста.
Однако я новичок в gradle и не смог указать путь к классу scala-plugin для задач в файле манифестаjar.
В результате я продолжаю получать следующую ошибку в gradle: $ gradlew compileTestScala Не удалось выполнить задачу ': compileTestScala'.
Невозможно определить путь к классу Scala, поскольку нетБиблиотека Скала Jar была найдена. Объявляет ли корневой проект test-saddle зависимость от scala-библиотеки? Ищите classpath: набор файлов.
Я попытался установить classpath для pathingJarTest.archivePath, для файлов (pathingJarTest.archivePath), но ни один из них, похоже, не заполняет classpath правильно, и я не могунайти любую документацию для справки с этим
plugins {
// Apply the scala plugin to add support for Scala
id 'scala'
}
repositories {
mavenLocal()
maven { url "http://artifactory-maven-repo" }
}
dependencies {
// Use Scala 2.12 in our library project
implementation 'org.scala-lang:scala-library:2.12.6'
implementation 'org.scala-saddle:saddle-core_2.12:1.3.7'
// Use Scalatest for testing our library
testImplementation 'junit:junit:4.12'
testImplementation 'org.scalatest:scalatest_2.12:3.0.8'
testImplementation 'org.scala-lang:scala-library:2.12.6'
// Need scala-xml at test runtime
testRuntimeOnly 'org.scala-lang.modules:scala-xml_2.12:1.2.0'
}
test {
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
}
}
task pathingJarTest(type: Jar ) {
archiveAppendix = "Pathing"
doFirst {
manifest {
// attributes "Class-Path": configurations.testCompile.files.join(" ")
attributes "Class-Path": sourceSets.test.runtimeClasspath.files.join(" ")
}
println "Printing files in pathingJarTest" +files(pathingJarTest.archivePath) + "-----"
}
}
compileTestScala {
dependsOn(pathingJarTest)
println "Printing files in pathingJarTest" +pathingJarTest.archivePath + "-----"
classpath = files(pathingJarTest.archivePath)
}
task CompileTask {
doFirst { println "Compiling ..." +" new string"
sourceSets.main.runtimeClasspath.each { println it}
println "---------------------"
println sourceSets.test.runtimeClasspath.files.join(" ") }
doLast { println "Compiling done!" }
}
task scalaTest(dependsOn: ['testClasses'], type: JavaExec) {
main = 'org.scalatest.tools.Runner'
args = ['-R', 'build/classes/scala/test', '-o']
//classpath = sourceSets.test.runtimeClasspath
classpath = files(pathingJarTest.archiveFileName)
}
test.dependsOn scalaTest // so that running "test" would run this first, then the JUnit tests
с вышеупомянутым build.gradle, я продолжаю получать следующую ошибку в задаче compileTestScala:
FAILURE: сборка завершилась с исключением.
- Что пошло не так: не удалось выполнить задачу ': compileTestScala'.
Невозможно определить путь к классу Scala, поскольку Jar библиотеки Scala не найден. Объявляет ли корневой проект test-saddle зависимость от scala-библиотеки? Найденный путь к классу: коллекция файлов.