Gradle 与 Eclipse - 当多个源集时不完整的 .classpath

2024-04-03

我有一个 gradle 构建脚本,其中包含一些源集,这些源集都定义了各种依赖项(有些是常见的,有些不是),并且我正在尝试使用 Eclipse 插件来让 Gradle 生成.project and .classpath文件的 Eclipse,但我不知道如何将所有依赖项条目放入.classpath;由于某种原因,实际上添加的外部依赖项很少.classpath,结果 Eclipse 构建失败并出现 1400 个错误(使用 gradle 构建工作正常)。

我已经像这样定义了我的源集:

sourceSets {
    setOne
    setTwo {
        compileClasspath += setOne.runtimeClasspath
    }
    test {
        compileClasspath += setOne.runtimeClasspath
        compileClasspath += setTwo.runtimeClasspath
    }
}

dependencies {
    setOne 'external:dependency:1.0'
    setTwo 'other:dependency:2.0'
}

由于我没有使用mainsource-set,我认为这可能与它有关,所以我添加了

sourceSets.each { ss ->
    sourceSets.main {
        compileClasspath += ss.runtimeClasspath
    }
}

但这没有帮助。

我无法找出包含的库或未包含的库的任何共同属性,但我找不到任何我确定的东西(尽管当然必须有一些东西)。我有一种感觉,所有包含的库都是依赖项test源集,无论是直接还是间接,但我无法验证这一点,只是注意到所有test的依赖关系就在那里。

我如何确保的依赖关系all源集放入.classpath?


这个问题的解决方式与类似的问题 https://stackoverflow.com/questions/17028368我昨天问:

// Create a list of all the configuration names for my source sets
def ssConfigNames = sourceSets.findAll { ss -> ss.name != "main" }.collect { ss -> "${ss.name}Compile".toString() }
// Find configurations matching those of my source sets
configurations.findAll { conf -> "${conf.name}".toString() in ssConfigNames }.each { conf ->
    // Add matching configurations to Eclipse classpath
    eclipse.classpath {
        plusConfigurations += conf
    }
}

Update:

I also 在 Gradle 论坛中问了同样的问题 http://forums.gradle.org/gradle/topics/how_do_i_get_the_gradle_eclipse_plugin_to_work_with_multiple_source_sets_that_have_different_dependencies,并得到了更好的解决方案:

eclipseClasspath.plusConfigurations = configurations.findAll { it.name.endsWith("Runtime") }

它并不那么精确,因为它除了我的源集中的内容之外还添加了其他内容,但它保证它会起作用。而且眼睛更舒服=)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle 与 Eclipse - 当多个源集时不完整的 .classpath 的相关文章

随机推荐

  • 你可以合法地将dynamic_cast转换为多态类的非多态基类吗

    In 这个答案 https stackoverflow com a 44329645 1277769 出现了以下场景 include
  • time.struct_time 的 structseq() 错误

    这是给出错误的 python 脚本 gt gt gt import time gt gt gt t gt gt gt t append time struct time tm year 2000 tm mon 11 tm mday 30 t
  • 重命名后如何获取应用名称?

    在应用程序运行时更改可执行文件名称后 GetModuleFileName and GetModuleFileNameEx使用PID返回原始文件名 如何获取新文件名甚至检测更改 理想情况下我不想使用FindFirstChangeNotific
  • 如何在 MySQL 中有效地选择随机记录?

    mysql gt EXPLAIN SELECT FROM urls ORDER BY RAND LIMIT 1 id select type table type possible keys key key len ref rows Ext
  • Firebase 事件无延迟

    使用是一个好主意吗Firebase 事件 https www firebase com docs web api query on htmlapi 在客户端之间实时同步某些内容 例如 如果我想在客户端上完全同时播放视频 延迟小于 30 毫秒
  • 系统托盘中的 JavaFX 应用程序

    我正在使用 JavaFX UI 制作一个简单的应用程序 该应用程序只需执行以下操作 有一个系统托盘图标 单击时显示一个窗口 再次单击时隐藏它 右键单击时显示一个带有 1 个 退出 项的菜单 我已经制作了 UI 并将应用程序放入系统托盘中 但
  • Android 在按钮单击时显示数字键盘

    在我的应用程序中 我试图在用户单击按钮时显示数字键盘 单击按钮时 我使用 requestFocus 将焦点转移到布局中的 EditText 接下来我需要显示数字键盘 以便用户可以输入值 这些值始终是数字 因此我只需要显示数字键盘 我厌倦了在
  • 登录销售导航器 python selenium

    我正在尝试实现登录销售导航页面的简单任务 之后我可以继续尝试抓取潜在客户和帐户数据 作为抓取练习 按照此link https www linkedin com sales login为了登录 我有这个脚本来完成任务 browser webd
  • 使用 XmlCipher (RSA) 加密 XML 文件

    我只需要使用公钥加密一些 XML 元素 我成功地可以将此代码与 simetric 算法 XMLCipher AES 128 一起使用 但在尝试使用 XMLCipher RSA v1dot5 时失败 这就是代码 import java sec
  • FileReference.save() AS3 上锁定文件类型的替代方案

    Update 正如下面 Jacob 的回复中所讨论的 限制或纠正 FileReference save 的行为是不可能的 谁能建议一个替代方案 服务器是 Apache PHP 它符合我在这篇文章中的所有标准 并避免我与 Jacob 讨论的陷
  • iOS Prefix.pch 最佳实践

    我见过许多开发人员将各种方便的宏添加到他们的 iOS 项目的 Prefix pch 中 您建议在 iOS Prefix pch 文件中添加 或不添加 什么内容 你的 Prefix pch 是什么样的 Ewww 不要将宏放入 pch 文件中
  • ACTION_POWER_CONNECTED 的问题

    我在应用程序中使用以下示例页面中的代码来监控设备何时连接 断开与电源适配器的连接 http developer android com training monitoring device state battery monitoring
  • 如何在第二台显示器上打开form2?

    我从 Form1 创建 Form2 我希望 Form2 在第二台显示器上打开 我怎样才能做到这一点 我使用这段代码 private void button1 Click object sender EventArgs e Form2 dlg
  • react-google-maps:如何使用 fitBounds、panBy、panTo、panToBounds 公共 API?

    根据反应谷歌地图库 https github com tomchentw react google maps blob master src lib GoogleMap js L125 L131 您可以从 ref 对象调用这四个方法 看起来
  • 简化 sympy 中双曲函数的指数表示

    我正在尝试将表达式中的一些指数函数重写为 cosh 和 sinh rewrite 函数的作用是将双曲函数转换为其指数表示形式 但想回去是不行的 gt gt gt import sympy gt gt gt x sympy Symbol x
  • UIScrollView 就像 iPad 上的 Twitter 应用程序

    我正在寻找教程或一些想法来制作一个类似于 iPad 版 Twitter 应用程序中的自定义控制器 我的意思是左侧有主菜单的堆叠页面 预先感谢您的任何帮助 我们创建了一个模拟项目并添加到 github 中 https github com r
  • 如何禁用 JButton 而不隐藏其标签?

    我正在使用 netbeans IDE 在 Java 中开发一个项目 我需要禁用特定的 JButton 我为此使用以下代码 IssuBtn setEnabled false 但禁用后 它不会在 JButton 上显示文本 如何将该文本保留在
  • 如果选中复选框,如何隐藏和显示项目

    我试图根据是否选中复选框来隐藏和显示一个区域 我尝试了一些选项 但该区域要么始终可见 要么始终隐藏 JavaScript document ready function var mgift chkbxMGift input type che
  • 如何跳转到 PrintDocument 中的下一页?

    我有一个应用程序可以打印您想要的条形码数量 但是如果条形码的数量大于条形码的大小打印文档 http msdn microsoft com en us library system drawing printing printdocument
  • Gradle 与 Eclipse - 当多个源集时不完整的 .classpath

    我有一个 gradle 构建脚本 其中包含一些源集 这些源集都定义了各种依赖项 有些是常见的 有些不是 并且我正在尝试使用 Eclipse 插件来让 Gradle 生成 project and classpath文件的 Eclipse 但我