2016-03-15 63 views
1

我試圖將我的Gradle版本從2.3更新到2.12。當我使用新版本(2.12)運行「eclipse」任務來生成eclipse文件時,我遇到了一個問題。Gradle Eclipse插件在生成的.classpath文件中不包含exported =「true」

.classpath文件中生成的classpathentry節點不再包含用於在eclipse中創建工作運行目標所需的exported =「true」屬性。

隨着2.3

<classpathentry 
sourcepath="/../some-lib-sources.jar" kind="lib" path="/../some-lib.jar" 
exported="true"/> 

版本使用2.12版本(出口= 「true」 是失蹤)

<classpathentry 
sourcepath="/../some-lib-sources.jar" kind="lib" path="/../some-lib.jar"/> 

我無法找到任何關於這一問題的搖籃文檔中有所幫助。我希望這只是一個簡單的配置更改。

有誰知道如何解決這個問題?

更新:

所以我發現,我覺得在2.5 release notes

變化IDE類路徑代引起此問題的變化......在項目 所有的依賴都標as exported = false。

..但我仍然無法找到任何有關如何控制什麼classpathentries獲得exports = true屬性的信息。

回答

0

我最終通過在代碼代碼中加入以下來解決此問題。

eclipse { 
    classpath { 
    defaultOutputDir = file('classes') 

     file {     
     whenMerged { classpath -> 
      classpath.entries.findAll { entry -> entry.kind == 'lib' }*.exported = true      
     } 

    } 
    } 
} 
0

在我看來,允許構建和依賴管理工具來管理IDE特定的文件是一個根本性的錯誤。請參閱我在this answer中的解釋。

相反,安裝Buildship並使用它將您的基於Gradle的項目導入到Eclipse中。讓Eclipse插件執行Eclipse的東西並構建工具。

+0

謝謝..我一定會看看這個,但現在我們只需要再次得到這個工作。 – delux247

+0

Buildship似乎會修改您的Eclipse .classpath文件。當然,當我們做Gradle - > Refresh時,會重新使用這些文件。在查看Gradle文檔時,我無法確定Buildship的部分內容! – davidfrancis

相關問題