簡體   English   中英

如何強制Gradle使用特定的jar?

[英]How to force Gradle to use a specific jar?

我是gradle的新手,並且得到了一個包含很多依賴項的龐大項目。

但是,我構建了要使用的特定jar,而不是依賴項中的jar。
在build.gradle中,我具有對common的依賴:

“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使用我構建的jar,而不是

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

在Gradle中,添加依賴項的順序將決定要添加的最終jar,這意味着如果您添加x.jar的兩個版本,Gradle不會采用新版本,甚至不運行任何邏輯,它只會通過以下方式添加它們:一個,並且由於它們具有相同的名稱,因此最后一個將覆蓋前一個。 就您而言,只需添加您最后創建的那個即可。

您可以使用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
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM