[英]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')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.