我正在使用 Kotlin DSL 和 Gradle 构建工具。从命令行运行时,我的 gradle 构建在本地和 jenkins 服务器上运行良好。
然而,IDEA 抱怨并将几个项目标记为红色,并显示以下错误:
我在项目设置中尝试了所有 3 个选项: - 使用默认的 gradle 包装器 - 使用 gradle 'wrapper' 任务配置 - 使用本地 gradle 分发
结果如果完全相同
问题:配置有问题,或者是否有修复或解决方法?
IntelliJ IDEA 2018.1.2 (Community Edition)
Build #IC-181.4668.68, built on April 24, 2018
JRE: 1.8.0_152-release-1136-b29 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.15.0-20-generic
Run Code Online (Sandbox Code Playgroud)
.
Kotlin plugin: 1.2.41-release-IJ2018.1-1
Run Code Online (Sandbox Code Playgroud)
.
Gradle 4.7
------------------------------------------------------------
Build time: 2018-04-18 09:09:12 UTC Revision: b9a962bf70638332300e7f810689cb2febbd4a6c
Groovy: 2.4.12 Ant: Apache Ant(TM) version 1.9.9 …Run Code Online (Sandbox Code Playgroud) 我需要抓取已过期/自签名证书的公司内部网站.没有人会为该主机配置有效的证书,所以我必须使用不安全的连接.
curl--insecure为此目的有旗帜,
Scala finagle库有.tlsWithoutValidation()模式.
问题:Kotlin库有类似的选择吗?
UPD:到目前为止,我正在使用Fuel和这里发现的大量解决方法,但仍在寻找更好的方法..
fun useInsecureSSL() {
// Create a trust manager that does not validate certificate chains
val trustAllCerts = arrayOf<TrustManager>(object : X509TrustManager {
override fun getAcceptedIssuers(): Array<X509Certificate>? = null
override fun checkClientTrusted(chain: Array<X509Certificate>, authType: String) = Unit
override fun checkServerTrusted(chain: Array<X509Certificate>, authType: String) = Unit
})
val sc = SSLContext.getInstance("SSL")
sc.init(null, trustAllCerts, java.security.SecureRandom())
HttpsURLConnection.setDefaultSSLSocketFactory(sc.socketFactory)
// Create all-trusting host name verifier
val allHostsValid = HostnameVerifier …Run Code Online (Sandbox Code Playgroud) 我尝试在解析 json 时使用具体化类型。它可以完美地处理单个 json 条目,但无法处理列表。
问题:
package qa
import com.fasterxml.jackson.databind.ObjectMapper
import org.slf4j.LoggerFactory
import org.testng.Assert
import org.testng.annotations.Test
class ReifiedParseListTest {
data class User(var name: String = "userName", var age: Int = 0)
val log = LoggerFactory.getLogger(this.javaClass.name)
val objectMapper = ObjectMapper()
val json: String = """[{"name":"Alice","age":1},{"name":"Bob","age":2}]"""
val expected: String = "[User(name=Alice, age=1), User(name=Bob, age=2)]"
inline fun <reified V> String.parseList(): List<V> = objectMapper
.readValue(this, Array<V>::class.java).toList()
@Test
fun checkParseList_OK() {
val actual: List<User> = objectMapper
.readValue(json, Array<User>::class.java).toList()
log.info("actual.first() …Run Code Online (Sandbox Code Playgroud) 更准确地说,我需要获取触发我的多分支构建的 PR 的标签列表。是否可以?
我知道https://github.com/jenkinsci/pipeline-github-plugin但使用了不兼容的 Jenkins 版本和多分支管道。
我了解存储在文件系统中的文件和目录的权限意味着什么。但是为什么我在调用 os.OpenFile 时需要设置权限?如果成功打开,它会更新文件系统上的文件权限吗?如果不是 - 用 0000 或 0777 打开同一个文件有什么区别?
https://golang.org/src/os/file.go?s=8454:8520#L272
func OpenFile(name string, flag int, perm FileMode) (*File, error)
...
f, err := os.OpenFile("access.log", os.O_APPEND, 0644)
Run Code Online (Sandbox Code Playgroud)