2017-10-11 30 views
0

我是新來的gradle,並得到了一個巨大的項目與很多依賴項。如何強制Gradle使用特定的jar?

但是,我建立了一個特定的jar,我想用它來代替依賴關係中的jar。
在的build.gradle我有依賴關係共同點:

「com.company.was.common.utils:是常見-utils的:$ {} wasUtilsCommonVersion」,

的依賴,我需要變化如下:

+--- com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1 
|    |    +--- com.company.security.logging:security-logging:16.11.0 (*) 
|    |    +--- com.company.was.security.encrypt:was-security-encrypt:17.8.1 
|    |    |    +--- commons-io:commons-io:2.5 
|    |    |    +--- commons-codec:commons-codec:1.10 
|    |    |    +--- com.company.security.logging:security-logging:16.11.0 (*) 
|    |    |    +--- com.company.was.common.utils:was-common-utils:17.7.0 -> 17.2.0 

如何強制gradle這個用我建的,而不是

com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1? 
罐子

到罐子的路徑爲

/Users/anarinsky/eclipse-workspace/was-utils-storage-java/build/libs/was-utils-storage-java-SNAPSHOT.jar 
+0

那麼,一旦你不能直接添加依賴依賴。您必須使用Gradle將jar添加爲依賴項。看到[this](https://stackoverflow.com/questions/20700053/how-to-add-local-jar-file-dependency-to-build-gradle-file) – Zoe

+0

@Zoe,如何聲明這個本地jar覆蓋依賴項com.company.was.utils.secure.storage:was-utils-secure-storage:17.8.1? –

+0

如果您想覆蓋依賴項,只需將其刪除即可。如果你有兩個相同的東西,你會得到zip合併錯誤。只需刪除該行。編輯:沒關係,格式非常差的表(現在格式化和可讀)改變了問題的整個含義。如果你想覆蓋作爲依賴項一部分的特定包或依賴項,這是一個完全不同的主題 – Zoe

回答

1

在搖籃添加依賴會決定將要添加的最後罐子,如果添加x.jar的兩個版本意味着搖籃不採取新的一個,甚至順序運行它背後的任何邏輯,它會逐一添加它們,並且由於它們具有相同的名稱,所以最後一個將覆蓋前一個。 在你的情況下,只需添加你最後創建的那個。

0

您可以使用DependencyHandler來定義哪些將被使用,哪些將被忽略。 例如:

dependencies { 
    compile('org.hibernate:hibernate:3.1') { 
    //in case of versions conflict '3.1' version of hibernate wins: 
    force = true 

    //excluding a particular transitive dependency: 
    exclude module: 'cglib' //by artifact name 
    exclude group: 'org.jmock' //by group 
    exclude group: 'org.unwanted', module: 'iAmBuggy' //by both name and group 

    //disabling all transitive dependencies of this dependency 
    transitive = false 
    } 
} 
相關問題