2016-03-15 61 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

相关问题