簡體   English   中英

settings.gradle不支持Gradle和Eclipse-“ ..:DependentProject”?

[英]Gradle and Eclipse- “..:DependentProject” not supported in settings.gradle?

我正在嘗試導入同級項目tom-commons 我的項目budget_assistant需要使用tom-commons作為依賴項,並且它們都位於同一工作空間文件夾中,而不是嵌套的。 它在Intellij IDEA和命令行中可以正常工作。 但是Eclipse似乎並不喜歡它。

在此處輸入圖片說明

我認為它不喜歡“ ..”相對路徑,Eclipse必須認為它是嵌套在我的項目下的文件夾。 有沒有辦法將這種依賴關系解析為絕對URL?

這是我的settings.gradle

include ':..:tom-commons'

這是我的build.gradle

repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

dependencies {
    compile group: 'com.google.guava', name: 'guava', version: '18.0'
    compile 'org.xerial:sqlite-jdbc:3.8.7'
    compile 'net.jcip:jcip-annotations:1.0'
    compile 'joda-time:joda-time:2.7'
    compile project(':..:tom-commons')
}

sourceSets {
    main.java.srcDir "src/main/java"
}

jar { 
    from configurations.compile.collect { entry -> zipTree(entry) }
}

問題是您隱式創建了一個名為“:..”的項目,並且Gradle工具API在其項目模型中將其直接反映為名稱為“ ..”的“ EclipseProject”。 但。 “ ..”不是導致異常的Eclipse工作區中項目的有效名稱。

從某種意義上說,我仍然認為這是一個錯誤。 我們可以歸咎於兩個Gradle工具API都歸還了非法的東西; 以及不更優雅地處理“垃圾”數據的工具。

但是,實際上,我認為您不需要“:..”項目。 相反,您只需要一個“:ChildA”和“:ChildB”項目,它們是“:”的直接子級(就項目層次結構而言),但是就它們在磁盤上的位置而言是同級的。

使用settings.gradle中的'includeFlat'(參見Gradle docs )最容易實現這種布局。

在settings.gradle中:

includeFlat 'ChildA','ChildB'

在build.gradle中,將子代稱為“:ChildA”和“:ChildB”,例如:

dependencies {
    compile project(':ChildA')
    compile project(':ChildB')
}

在github上查看我對樣本的更改

暫無
暫無

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

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