我的 gradle 文件中有这个 jar 任务,如下所示:
jar {
manifest {
attributes "Main-Class": "nameSpace.myClass"
}
from {
configurations.compile.collect {
it.isDirectory() ? it : project.zipTree(it).matching {
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA','build','.gradle/**','build.gradle','gradle','gradlew','gradlew.bat','test'
}
}
}
}
运行 jar 任务很少会产生成功的结果。大多数时候它会给我以下错误:
* What went wrong:
Failed to capture snapshot of output files for task 'jar' property 'archivePath' during up-to-date check.
> Failed to create MD5 hash for file 'PATH/build/libs/filename.jar'.
使用 --stacktrace 和 --debug 运行任务为我提供了更多数据:
* Exception is:
13:21:45.559 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.UncheckedIOException: Failed to capture snapshot of output files for task 'jar' property 'archivePath' during up-to-date check.
再往下一点:
Caused by: java.io.FileNotFoundException: PATH/build/libs/filename.jar (Permission denied)
有人认识这个吗?我运行 OS X,而我运行 Linux 的同事从未遇到过这个问题。
jar 任务运行了相当长的时间。这部分似乎是运行时间最长的部分:
13:54:08.324 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':jar'.
13:54:12.992 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
13:54:12.994 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
13:54:12.994 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
13:54:12.994 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
13:54:12.995 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
13:54:12.995 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
13:54:12.996 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
13:54:22.993 [DEBUG] [org.gradle.launcher.daemon.server.Daemon] DaemonExpirationPeriodicCheck running
13:54:22.994 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
13:54:22.994 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
13:54:22.995 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
13:54:22.996 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
13:54:22.996 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Lock acquired.
13:54:22.996 [DEBUG] [org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on daemon addresses registry.
13:54:32.297 [DEBUG] [org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter] Removed task artifact state for {} from context.
我尝试运行清理任务、删除构建文件夹、重新启动守护进程等,但没有任何帮助。
编辑: 将 Gradle 升级到 3.3 没有解决任何问题。
最佳答案
这很可能是防病毒问题。尝试禁用防病毒软件并重试。这发生在我身上。很奇怪!
关于在最新检查期间,Gradle jar 任务失败,并显示 "Failed to capture snapshot of output files for task ' jar' 属性 'archivePath'。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828364/