[英]Versionless gradle dependencies
當我這樣做時
dependencies {
file('libs/something.jar')
}
我的發行物中有something.jar
。 但是,當我將依賴關系推送到遠程存儲庫(ivy或maven)並想從那里使用它時,gradle總是向jar添加版本后綴。
dependencies {
compile group: 'org.company', name: 'something', version: '1.0'
}
結果為something-1.0.jar
。
即使這樣
dependencies {
compile group: 'org.company', name: 'something'
}
結果為something-.jar
(請注意破折號)。
我可以以某種方式阻止存儲庫依賴項具有版本嗎?
(我的動機是該jar是3rd party jar,我不想在git repo中使用它,但我也不想更改其名稱。)
如您所說,可以在存儲庫中為工件提供一個版本。 您只是不希望應用程序的jar中有版本。 你可以做
configurations {
something { transitive = false }
}
dependencies {
something 'org.company:something:1.0'
something 'org.company:something-else:1.0'
compile files(tasks['dummyTask'])
compile 'org.foo:some-normal-dep:1.1'
}
task copySomething(type:Copy) {
from configurations.something
into "$buildDir/something"
rename '(.+)-.+?\\.jar', '$1.jar'
}
task dummyTask {
dependsOn copySomething
inputs.dir "$buildDir/something"
outputs.files fileTree("$buildDir/something")
}
這樣做的主要推動力是Project.files(...)可以接受Task
Maven存儲庫要求每個工件都有一個版本。 我認為方法是在下載工件時或之后剝離版本號。 Maven在構建戰爭或耳朵時可以選擇剝離版本號,我猜Gradle中也有類似的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.