Gradle Kotlin DSL を用いたプロジェクトでmavenにpublishするときの注意
gradle kotlin-dsl のサンプル「hello-kotlin」を真似て、kotlin stdlib のdependencyを記述すると、invalidなpomが生成されてしまう。
dependencies {
api(kotlin("stdlib-jre8"))
}
生成されるpom.xml
<dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jre8</artifactId> </dependency>
version
がないので、この pom.xml は invalid。
正しくは DependencyHandler.kotlin
extension function の引数 version
もちゃんと指定する
dependencies { api(kotlin("stdlib-jre8", "1.1.51")) }
または、
dependencies { api(kotlin(module = "stdlib-jre8", version = "1.1.51")) }
これにより、valid な pom.xml が生成される
<dependency> <groupId>org.jetbrains.kotlin</groupId> <artifactId>kotlin-stdlib-jre8</artifactId> <version>1.1.51</version> </dependency>