我目前處於編輯gradle項目(「數據庫」&「masterdata」)的情況。 Masterdata取決於數據庫項目。將數據庫發佈到Nexus服務器,並將其作爲依賴項加載到masterdata中。在eclipse中缺少項目依賴關係
masterdata
import org.gradle.plugins.ide.eclipse.model.SourceFolder
apply plugin: "java"
apply plugin: "eclipse"
sourceCompatibility = 1.7
version = '0.1-SNAPSHOT'
group = "net.example"
def nexusHost = "http://nexus:8081"
repositories {
logger.lifecycle("Configuration: Repositories")
maven {
url nexusHost + "/nexus/content/groups/public"
}
}
dependencies {
logger.lifecycle("Configuration: Dependencies")
compile 'net.example:database:0.1-SNAPSHOT' // project where the changes happen
compile 'com.google.guava:guava:14.0.1'
testCompile 'ch.qos.logback:logback-classic:1.0.13'
testCompile 'org.testng:testng:6.8.5'
testCompile 'org.dbunit:dbunit:2.4.9'
testCompile 'org.mockito:mockito-all:1.9.5'
testCompile 'org.easytesting:fest-assert-core:2.0M10'
testCompile 'org.hsqldb:hsqldb:2.2.9'
}
eclipse.classpath.file {
beforeMerged { classpath ->
classpath.entries.clear()
logger.lifecycle("Classpath entries cleared")
}
whenMerged { cp ->
cp.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/main/") }*.output = "bin/main"
cp.entries.findAll { it instanceof SourceFolder && it.path.startsWith("src/test/") }*.output = "bin/test"
cp.entries.removeAll { it.kind == "output" }
logger.lifecycle("Classpath entries modified")
}
}
當我改變它需要一個完整的構建數據庫項目的東西的的build.gradle,發佈等,直到我看到masterdata項目的變化。在我以前工作過的公司裏,我們用maven做了類似的設置。在那裏,我立即看到依賴關係的變化,而不是首先發布它們。這也可以用gradle嗎?也許通過多項目構建?
基本上由下列項從丟失的.classpath:
<classpathentry combineaccessrules="false" kind="src" path="/database"/>
是否有辦法來自動它的產生。
更新:作爲一種變通方法我手動添加條目到的.classpath
我收到以下錯誤: 您無法從抽象接口'org.gradle.api.artifacts.ProjectDependency'中創建實例。 –
@Bernard我有同樣的問題,它有助於添加'import org.gradle.plugins.ide.eclipse.model。ProjectDependency'放在我的.gradle文件的頂部,並添加'apply plugin:'eclipse''。 – zpon