我需要修改清单的文件在大会期间的战的文件。 我需要添加一个清单上的所有文件一类的路径,以避免 java.io.IOException: CreateProcess error=206, The filename or extension is too long
异常被扔的时候我想要执行这java文件,在Windows的机器。
宣布直接在建立脚本,这项任务不会的工作。
task pathingWar(type: War) {
getArchiveAppendix().set("pathing")
doFirst {
manifest {
attributes "Class-Path": sourceSets.main.runtimeClasspath.files.collect { project.uri(it) }.join(" ")
}
}
}
但是我想创建一个独立的任务在 buildSrc 目录像的代码如下。 战争创建的路径中的附录名字、但没有额外的 Class-Path
酒店里面 MANIFEST.MF
即使文件 classpathFiles
变拥有所需的价值观,同时调试该执行的任务。
class PathingWar extends War {
PathingWar() {
getArchiveAppendix().set("pathing")
}
@TaskAction
def setManifestTask() {
def classpathFiles = ((SourceSet)((SourceSetContainer) getProject().getExtensions().getByName("sourceSets"))
.getByName("main")).getRuntimeClasspath().getFiles().collect {project.uri(it)}.join(" ")
setManifest(getManifest().attributes(["Class-Path": classpathFiles]))
}
}
属性不会被置的清单,什么我错过了翻译的逻辑,从建立脚本到定义的任务?
更新
经过进一步的检查我看到的时候 setManifestTask()
注解 @TaskAction
正在执行的已经太迟了。 在这一点上的战争产生下 build/libs
文件夹。 我需要另一种方式的配置清单中。 我不知道哪些其他方法使用。