2015-09-01 46 views
11

我有以下項目結構:搖籃日食任務不加適量gradle這個性質

  • 根gradle這個(的build.gradle)
    • 項目組1(沒有構建文件)
      • PROJECT1(的build.gradle)
      • 項目2(的build.gradle)
      • ...
    • 項目組2(沒有構建文件)
      • ...

恰巧,我不得不經常重新創建Eclipse項目。我運行命令:

gradle cleanEclipse eclipse 

經過多次運行「eclipse」任務停止按預期工作。也就是說,它不gradle這個性質的項目增加了,不承認

sourceCompatibility = 1.6 

再嘗試與1.8版本的Java構建一切。

添加以下到根的build.gradle:

allprojects { 
    sourceCompatibility = 1.6 
    eclipse.project { 
     natures 'org.springsource.ide.eclipse.gradle.core.nature' 
    } 
    // more stuff here ... 
} 

這有助於與根的項目,但對任何其他項目沒有影響。 我給子項目添加了同樣的東西,但結果卻不盡如人意。 我不得不說,甚至在自然被添加到根項目之後,Gradle插件選項再次可用於根目錄後,我仍然看不到「G」圖標。

所以它看起來像我有2個問題與gradle設置。

  1. 消失的gradle性質。幾次運行後,Eclipse停止識別gradle項目。如果工作正常,我甚至不會面對第二個問題。

  2. 我的gradle構建文件或項目佈局的一些問題,因爲我的設置似乎不會對子項目生效。

  3. 缺失具有恢復的Gradle特性的項目的「G」圖標。

任何幫助將不勝感激!

+1

我只從Eclipse刷新,但使用gradle eclipse插件進行自定義。我遇到了'afterEvaluate'解決了比賽的問題,所以您可以嘗試一下,看看是否需要延遲更改直到配置階段結束。 –

+1

我與@BenManes在這一個。在組裝子項目列表之前,您的allprojects塊可能正在運行,導致您看到的行爲。你有沒有嘗試過使用afterEvaluate? – RaGe

回答

4

安裝Gradle plug-in for Eclipse

然後使用Eclipse菜單:文件 - >導入...導入搖籃項目。 它將添加Gradle自然。另外還有2個Eclipse視圖,一個用於快速運行Gradle任務。一個用於執行這些任務的Gradle輸出。

提示:之前導入現有的搖籃項目,創建一個新的搖籃項目,看是否搖籃插件按預期工作。

新搖籃工程

  • 使用Eclispe的菜單:文件 - >新建 - >其他...
  • 選擇嚮導:搖籃 - >搖籃工程
  • 進入項目名稱
  • 按下按鈕完成

這應該設置一個最小化的Gradle項目。

+0

這就是我所擁有的。 – ATrubka

+1

然後你應該__not__使用'gradle cleanEclipse eclipse'命令。當它們生成時,與Eclipse_插件_Gradle相同/相似的文件可以完成。也刪除'日食。項目{...}'部分由Gradle構建文件構成。正如__Gradle for Eclipse_插件所使用的__not__一樣。只能混淆項目的其他開發人員。 – Verhagen

+0

我明白,cleanEclipse eclipse是最後的手段。在某些情況下,雖然沒有其他命令有助於庫版本更改。 eclipse.project部分實際上被使用,但它不適用於子項目。您可以將其插入每個gradle文件中,然後按預期方式添加自然。 – ATrubka

1

我認爲您必須將gradle設置爲您的系統環境。 步驟 -

  • 從gradle網站安裝Gradle。
  • 轉到eclipse偏好設置在Gradle EnIDE中的Home路徑,例如「C:\ gradle-2.3」
    或您安裝的任何目錄。
  • 此外請確保將路徑添加到您的系統環境變量。
+0

這將迫使Gradle版本在各個項目中保持一致,並限制讓IDE使用由Gradle包裝器定義的默認值的能力,否? – nickb

+0

無論哪種方式,它都已配置。看起來問題是這個插件很糟糕。 – ATrubka

3

如果存在評估階段競爭條件,則可以使用afterEvaluate限定符將其消除。我會嘗試:

allprojects { 
    afterEvaluate { 
     eclipse.project { 
      natures 'org.springsource.ide.eclipse.gradle.core.nature' 
     } 
    } 
} 
+0

雖然添加了自然屬性,但Eclipse仍不會將項目識別爲Gradle項目。我最終必須禁用然後重新啓用Gradle特性,然後啓用依賴管理才能構建它們。 – nickb

+0

嗯,我猜eclipse只在一個項目添加時纔會進行一些識別,並且目前還沒有一種直接的方法來強制eclipse從構建工具中重新執行它。 – RaGe

0

enter image description here

在設置搖籃>>

include 'Device', 'Secugen', 'Morpho', 'NIDVSADesktop' 

這裏NIDVSADesktop是我的根項目。 根的gradle項目

dependencies { 
    compile project(':Secugen') 
    compile project(':Morpho') 

} 

這裏Secugen和形態是我的2個個子項目

+0

Morpho gradle build如何找到其父項?據我所知,它只搜索「主」兄弟目錄或父目錄。只運行Morpho構建(不是根構建)會發生什麼? – ATrubka

5

使用Buildship: Eclipse Plug-ins for Gradle我不得不使用性質字符串 'org.eclipse.buildship.core.gradleprojectnature'

例如:

allprojects { 
    eclipse.project { 
     natures 'org.eclipse.buildship.core.gradleprojectnature' 
    } 
}