在与其他开发人员的对话中,我称之为!!操作.
在Kotlin,它?:被称为猫王运营商
这些消息来源并没有说明这个名字!!是什么:
在线查看,通用术语!!是双重爆炸.即使swift的!操作符被称为强制解包,我也会对Kotlin使用相同的内容(注意:!swift中的类似于Kotlin的!!.)
我特别想要的是:
!!Kotlin开发人员可以理解的操作的名称我们在 docker 容器中运行 gradle 构建(原因是构建需要我们不想在主机上安装的软件;节点、wine 等。甚至没有在主机上安装 java 或 gradle)。
使用空缓存启动每个容器非常缓慢。
我已经设置了 gradle-4.0 的 http 构建缓存。在大多数情况下,这避免了 java 编译的需要。性能增益虽然很低,因为构建时间主要由下载依赖项决定。gradlew --parallel有助于稍微缓解这种情况,但要真正促进构建,应完全避免下载。
将 ~/.gradle 共享为 docker 卷是有问题的,因为它会在容器并行运行时引起争用(https://github.com/gradle/gradle/issues/851)。
那么,还可以做些什么来避免一遍又一遍地下载相同的工件?
我们在路径下有一个版本控制字典eclipse/spelling/german.dic。我知道在 IDEA 中使用该词典的唯一方法是将其添加为自定义词典。
因此,每个开发人员都必须在克隆存储库后手动配置字典。有没有办法避免这种情况?是否有.idea/where.ever, 告诉 IDEA 使用位于给定项目本地路径下的字典?
我想将非空值注入到我的 groovy 类中
class MyClass {
private final String foo
private final Integer bar
MyClass(String foo, Integer bar) {
// wanted ctr body
}
...
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中,我想将参数分配给相应的字段并防止空值。
我想知道是否有一种比相当冗长的方式来做这件事
assert foo != null
assert bar != null
this.foo = foo
this.bar = bar
Run Code Online (Sandbox Code Playgroud)
或者
this.foo = Objects.requireNonNull foo
this.bar = Objects.requireNonNull bar
Run Code Online (Sandbox Code Playgroud) 我希望能够在我的文件中使用可选的额外属性build.gradle。为此,我必须检查该属性是否已定义,但出现以下错误
无法在额外属性扩展上获取属性“prop”,因为它不存在
文件构建.gradle
[...]
def my_prop=''
if(gradle.ext.prop!= null && gradle.ext.prop != '')
my_prop=gradle.ext.prop
Run Code Online (Sandbox Code Playgroud)
它正在使用此文件setting.gradle
gradle.ext.prop='PROP'
Run Code Online (Sandbox Code Playgroud)
当我在文件setting.gradle中注释行时它不起作用
//gradle.ext.prop='PROP'
Run Code Online (Sandbox Code Playgroud)
如何在 build.gradle 中检查是否gradle.ext.prop存在?