[英]How do I replace a gradle module dependency with a jar?
我有一個多項目構建,並且一個或多個子項目依賴於損壞的模塊。 我想用對本地 JAR 文件的依賴來替換模塊依賴。
我已經嘗試了以下(我並不真正期望工作),但除此之外我有點不知所措:
configurations.all {
resolutionStrategy {
failOnVersionConflict()
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == "com.android.support" && details.requested.name == "support-v4") {
details.useTarget("lib/android-support-v4-fixed.jar")
}
}
}
}
如何將子項目中的模塊依賴替換為對文件(即 JAR)的依賴?
最后,我瀏覽了大量文檔,並且能夠非常簡單地實現我想要的。
configurations.all {
exclude group: 'com.android.support', module: 'support-v4'
}
dependencies {
compile files('libs/support-v4.jar')
}
以上將排除所有模塊的 maven 依賴項(適用於庫等),在這種情況下,我們排除了 Android 支持庫。 然后我簡單地添加我自己的支持庫(帶有幾個錯誤修復)作為常規 jar 依賴項。
您可以通過添加這樣的本地存儲庫來做到這一點:
configure(allprojects) {
repositories {
maven {
url "../repo" // this is relative to subproject, so assumes all subprojects are in the same folder
}
// ... other repositories
}
固定的 jar 應該使用 mvn 文件夾結構放入 repo 目錄。 對於您的情況,應將兩個文件添加到repo/com/android/support/support-v4/r6-fixed
:
support-v4-r6-fixed.jar
support-v4-r6-fixed.pom
注意:文件應該命名為<artifactId>-<version>.<ext>
並且這應該匹配 pom 中的值。
pom 應該是一個有效的 pom 元,內容類似於(使用現有的 pom 為損壞的版本創建它)
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>r6-fixed</version>
</project>
創建一個 FlatDir 存儲庫並將您的 jar 放在那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.