相关疑难解决方法(0)

如何取消特定的Kotlinc / Javac编译器警告?

如何抑制deprecationsKotlinCompileGradle类似JavaCompile

JavaCompile(有效):

tasks.withType(JavaCompile) {
    configure(options) {
        compilerArgs << '-Xlint:-deprecation'
    }
}
Run Code Online (Sandbox Code Playgroud)

KotlinCompile(无效):

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
    kotlinOptions {
        freeCompilerArgs = ["-Xjavac-arguments=-Xlint:-deprecation"]
    }
}
Run Code Online (Sandbox Code Playgroud)

参考文献:

类似问题:

java gradle kotlin

18
推荐指数
1
解决办法
660
查看次数

如何在Javadoc警告的gradle构建上失败

我正在使用Java 7(尽管使用1.6编译)来编译类和javadoc.我已经消除了所有出现的javadoc警告,但是如果有任何javadoc警告,那么想法是让构建失败.

使用Java 8,这是默认行为.但是,在警告方面它也更加严格(如果方法没有列出所有@params或@returns,我们不希望发出警告).另外,我不认为公司很快会转向8,所以这是一个没有实际意义的问题.

我希望有一些简单的标志设置为gradle失败,如果有警告(只有failonError).我在想的是刮掉javadoc进程的控制台输出.如果该输出包含警告,那么我知道有警告,并且构建应该失败.

这是我的build.gradle中的javadoc块:

task gendocs(type: Javadoc) {
options.stylesheetFile = new File("./assets/doc_style.css")
options.windowTitle = "OurTitle"
options.memberLevel = JavadocMemberLevel.PROTECTED
options.author = true
options.linksOffline('http://d.android.com/reference', System.getenv("ANDROID_HOME") + '/docs/reference')
String v = "${SEMVER}"
version = v.replace("_", '.')
destinationDir = new File("${BUNDLE_FOLDER}/docs/api")
source = sourceSets.main.allJava
classpath += configurations.compile
}
Run Code Online (Sandbox Code Playgroud)

所以,如果没有更简单的方法来做到这一点,我如何检查javadoc的控制台输出来刮掉它?

java javadoc gradle

7
推荐指数
2
解决办法
2201
查看次数

为什么“Map”类的“get”方法可以在没有编译错误的情况下发送不相关的键?

我只是在我的程序中有一个错误,但我根本不明白该程序是如何编译的!

我有以下变量:

gamesPerCountriesMap: MutableMap<Long, MutableMap<Long, MutableList<AllScoresGameObj>>>?
Run Code Online (Sandbox Code Playgroud)

我有以下代码行:

var gamesList = gamesPerCountriesMap?.get(countryItem.id)?.get(competitionItem)
Run Code Online (Sandbox Code Playgroud)

正确的行应该是:

var gamesList = gamesPerCountriesMap?.get(countryItem.id)?.get(competitionItem.id)
Run Code Online (Sandbox Code Playgroud)

我查看了 Map 类的原型,该方法声明如下:

公共内联运算符 fun <@kotlin.internal.OnlyInputTypes K, V> Map<out K, V>.get(key: K): V?

正如我们所看到的,它可以获取 K 并且它是子类型,但是作为 CompetitionObj 类的 instacne 的竞争项并没有继承Long类。那么为什么编译器没有阻止这个错误呢?我解决了这个问题,但我很清楚什么没有阻止代码被编译?

dictionary compiler-errors kotlin

6
推荐指数
1
解决办法
243
查看次数

标签 统计

gradle ×2

java ×2

kotlin ×2

compiler-errors ×1

dictionary ×1

javadoc ×1