我有一个多模块分级项目。一个单元(A)包含与数据库有关的类;另一个(B)包含Spark应用程序并依赖于A。
shadowJar {
configurations = [project.configurations.shadow] // this was done to prevent ALL of A's dependencies from being shaded
relocate 'com.google.common', 'shaded.com.google.common'
}
dependencies {
shadow 'com.google.guava:guava:28.1-jre'
}
dependencies {
implementation project(':A')
}
dependencies {
implementation project( path: ':A', configuration: 'shadow' )
}
在B的runtimeClasspath
上,A的任何可传递依赖项都不可用。
我的目标是在模块A中只对番石榴进行遮蔽和重新定位,以最小化罐子大小和构建时间。然后,我需要带阴影的JAR以及B的runtimeClasspath
上可用的A的可传递依赖项。
一个有点不令人满意的解决方案是在B中声明我需要从A传递的依赖项。因为依赖项的集合相对较小,这可能是这个项目的最佳方法;但我更喜欢更优雅的。
也许我对传递性的依赖很严重?我喜欢这样做,因为它使dependencies
在整个项目的模块中保持简洁,但它可能会带来更多的麻烦。
问题内容: 我有一个来自Guava 的对象(Gooogle集合)。它采用的形式。并实施。现在,当我显示表格时,我希望用户能够以不同的方式对表格进行排序以更改值的顺序。 我尝试的方法是遍历表,并为每个值更改在Compare方法中使用的变量。麻烦在于,它一次通过循环,然后返回a ,我认为我已经缩小到尝试在遍历它的同时更改顺序(菜鸟的错误,我知道)。 所以我想知道,重新排序这张桌子的好方法是什么? 问题
通常对象映射器用于将较大的数据集映射到较小的数据集的场景(例如:对象有很多数据,但我们只想返回其中的几个)。 对象映射器通常创建一个小集合的目标对象的新实例,并从具有较大集合的源对象中设置所需字段,但我有相反的场景:我有一个已经包含一些数据的目标对象,现在我需要将具有较小数据集的新源对象映射到目标对象。 源类 目的地类别 DesObj已经包含int i和float f的值,SrcObj有Strin
问题内容: 刚刚发现了Guava库项目。 这些与GWT兼容吗? 问题答案: 从该页面的介绍性PDF中, 您可以在…上使用这些库。 在JDK 6上 在Android上, 我们认为。需要志愿者来帮助我们进行测试。 在Google App Engine上, 我们认为。需要志愿者来帮助我们进行测试。 在GWT上-参差不齐! 由于GWT的JDK库支持 可能参差不齐,也许是2/3,所以到目前为止,这些库中的东
问题内容: 我想知道哪个更有效,为什么? 1) 要么 2) 问题答案: 我看不出您为什么要在此处使用builder的任何原因: 比在这种情况下制作一个更具可读性, 不会推断通用类型,并且在用作单行代码时必须自己指定类型, (来自docs) 在与另一个不可变集合调用时 做得很好( 尝试避免在安全的情况下实际复制数据 ), (从源) 调用以前创建的,同时避免为零元素和一元素集合创建任何列表(分别返回空
我想为番石榴设个坑(http://pitest.org/)进行突变熟练度测试,但我在尝试运行时出现以下错误。这是我得到的错误: 基本上,要么PIT没有检测到测试,要么测试在PIT中运行不正常,所有测试都失败了。我读了这篇文章:JUnit测试通过,但PIT说套件不是绿色的,我认为“您的代码库是否包含可变静态状态?(例如在单例中)”是问题所在,但我不知道如何修复它。如果测试套件有一些隐藏的顺序依赖关系
我的 Spark 版本是 2.2.0,它在本地工作,但在具有相同版本的 EMR 上,它给出了以下异常。