0
我試圖將一個java項目的依賴關係複製到lib
文件夾,然後從lib
文件夾的jar副本列表中產生Class-Path
屬性的值。Gradle同步任務不一致
這裏是build.gradle
文件 -
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
libsDirName = 'package'
ext {
libDir = file('build/dependencies/lib')
}
task syncDependencies(type: Sync) {
from configurations.runtime
into libDir
}
jar {
manifest {
attributes(
"Class-Path": libDir.listFiles().collect { 'lib/' + it.getName() }.join(' ')
)
}
}
jar.dependsOn syncDependencies
dependencies {
//external compile dependencies
compile 'org.eclipse.persistence:javax.persistence:2.1.0'
}
當我執行gradle clean jar
,它會將依賴關係lib
文件夾,但Class-Path
屬性的值是空白。如果我再次執行gradle clean jar
,它會爲Class-Path
屬性生成適當的值。
但是,如果我執行gradle clean
後跟gradle clean jar
,則Class-Path
的值再次爲空。我正在使用Gradle 2.6
。
瞭解在配置階段執行什麼以及在執行階段執行什麼是Gradle中最困難的部分(至少對我而言)。 – shailendra