簡體   English   中英

Gradle無法解決Maven配置文件依賴性

[英]Gradle unable to resolve maven profile dependency

我有一個Maven項目A,其中的配置文件為:

<properties>
<bigquery.version>0.0.1</bigquery.version>
</properties>
.
.
<profiles>
<profile>
  <id>dev</id>
  <activation></activation>
  <properties>
    <build.version>${bigquery.version}</build.version>
  </properties>
</profile>
<profile>
  <id>screwdriver-v3</id>
  <activation>
    <activeByDefault>true</activeByDefault>
    <property>
      <name>screwdriver3</name>
    </property>
  </activation>
  <properties>
    <buildtype>release</buildtype>
    <build.version>${bigquery.version}.${maven.build.timestamp}</build.version>
  </properties>
</profile>

我在以下位置創建了A版本: 0.0.1.20180424-0042

我有另一個gradle項目B,我想將A作為依賴添加為:

compile group:'com.bq', name:'bigquery', version:'0.0.1.20180424-0042'

當我使用./gradlew clean build構建gradle時,它抱怨為:

Could not resolve all files for configuration ':compileClasspath'.
> Could not resolve com.bq:bigquery:0.0.1.20180424-0042.
Required by:
  project :
> Could not resolve com.bq:bigquery:0.0.1.20180424-0042.
  > inconsistent module metadata found. Descriptor: com.bq:bigquery:0.0.1.${maven.build.timestamp} Errors: bad version: expected='0.0.1.20180424-0042' found='0.0.1.${maven.build.timestamp}'

我該如何解決依賴關系?

當maven創建版本時,它會在最后添加時間戳,例如在nexus中,我正在檢查您是否存在版本0.0.3-SNAPSHOT工件,但jar是0.0.3-20161026.145419-3 ,所以最可能是您需要更改的是: compile group:'com.bq', name:'bigquery', version:'0.0.1.20180424-0042' -> compile group:'com.bq', name:'bigquery', version:'0.0.1'

注意:在pom.xml文件中,您還有0.0.1

像這樣使用Maven配置文件被認為是反模式,請在此處進一步閱讀

Gradle不完全支持Maven配置文件激活。 此處閱讀博客文章以了解兩個受支持的配置文件激活觸發器是

  • 默認情況下處於活動狀態的配置文件(適用於Gradle 1.12及更高版本)
  • 在沒有系統屬性的情況下處於活動狀態的配置文件(在Gradle 2.0及更高版本中可用)

作為一種解決方法,您可以執行以下操作:

  1. 使用本地文件夾作為被入侵的Maven存儲庫
  2. 首先訂購本地文件夾存儲庫,以便它優先於遠程存儲庫
  3. 復制/粘貼/調整本地文件庫中的pom,以便對其進行硬編碼
  4. 不要將工件(例如jar)復制到本地文件夾存儲庫中

然后gradle應該從本地倉庫中獲取pom,從遠程存儲庫中獲取jars等

例如:

repositories {
    maven {
        url = file('local-repo')
    }
    mavenCentral()
}

然后,您可以將“已調整”的pom放在

$projectDir/local-repo/$group.replace('.','/')/$artifact/$version/$artifactId-$version.pom

暫無
暫無

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

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