使用Maven

插件和版本

Kotlin-maven-plugin 可以编译 Kotlin 资源和模块。现在只有 Maven V3 支持

通过 Kotlin.version 定义你想要的 Kotlin 版本。可以有以下的值

X.Y.SNAPSHOT:对应版本 X.Y 的快照,在 CI 服务器上的每次成功构建的版本。这些版本不是真正的稳定版,只是推荐用来测试新编辑器的功能的。现在所有的构建都是作为 0.1-SNAPSHOT 发表的。你可以参看configure a snapshot repository in the pom file

X.Y.X: 对应版本 X.Y.Z 的 release 或 milestone ,自动升级。它们是文件构建。Release 版本发布在 Maven Central 仓库。在 pom 文件里不需要多余的配置。

milestone 和 版本的对应关系如下:

MilestoneVersion
M12.10.12.613
M120.12.200
M11.10.11.91.1
M110.11.91
M10.10.10.195
M100.10.4
M90.9.66
M80.8.11
M70.7.270
M6.20.6.1673
M6.10.6.602
M60.6.69
M5.30.5.998

配置快照仓库

使用 kotlin 版本的快照,需要在 pom 中这样定义:

<repositories>
    <repository>
        <id>sonatype.oss.snapshots</id>
        <name>Sonatype OSS Snapshot Repository</name>
        <url>http://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>sonatype.oss.snapshots</id>
        <name>Sonatype OSS Snapshot Repository</name>
        <url>http://oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
    </pluginRepository>
</pluginRepositories>

依赖

kotlin 有一些扩展标准库可以使用。在 pom 文件中使用如下的依赖:

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>

只编译 kotlin 源码

编译源码需要在源码文件夹打一个标签:

<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory><testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>

在编译资源是需要引用kotlin Maven Plugin:

<plugin><artifactId>kotlin-maven-plugin</artifactId><groupId>org.jetbrains.kotlin</groupId><version>${kotlin.version}</version><executions><execution><id>compile</id><phase>compile</phase><goals><goal>compile</goal></goals></execution><execution><id>test-compile</id><phase>test-compile</phase><goals><goal>test-compile</goal></goals></execution></executions></plugin>

编译 kotlin 和 java 资源

为了编译混合代码的应用,Kotlin 编译器应该在 java 编译器之前先工作。在 maven 中意味着 kotlin-maven-plug 应该在 maven-compiler-plugin 之前。

<plugin><artifactId>kotlin-maven-plugin</artifactId><groupId>org.jetbrains.kotlin</groupId><version>0.1-SNAPSHOT</version><executions><execution><id>compile</id><phase>process-sources</phase><goals><goal>compile</goal></goals></execution><execution><id>test-compile</id><phase>process-test-sources</phase><goals><goal>test-compile</goal></goals></execution></executions></plugin>

使用扩展的注解

kotlin 使用扩展的注解解析 java 库的信息。为了明确这些注解,你需要像下面这样:

<plugin><artifactId>kotlin-maven-plugin</artifactId><groupId>org.jetbrains.kotlin</groupId><version>0.1-SNAPSHOT</version><configuration><annotationPaths><annotationPath>path to annotations root</annotationPath></annotationPaths></configuration>

例子

你可以在 Github 仓库参考


本文转载自:https://huanglizhuo.gitbooks.io/kotlin-in-chinese/content/Tools/Using-Maven.html