Kotlin + Maven: настойка pom.xml

Kotlin + Maven: настойка pom.xml


  • Раздел констант:
<properties>
...
    <kotlin.version>1.2.71</kotlin.version>
    <java.version>1.8</java.version>
    <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
    <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
...
</properties>
  • Раздел зависимостей:
<!-- Kotlin стандартная библиотека -->
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib-jdk8</artifactId>
    <version>${kotlin.version}</version>
</dependency>
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-reflect</artifactId>
    <version>${kotlin.version}</version>
</dependency>
<!-- Kotlin для тестов, если используете JUnit тесты -->
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-test-junit</artifactId>
    <version>${kotlin.version}</version>
    <scope>test</scope>
</dependency>
<!-- Плагин Kotlin, если используете Jackson маппер  -->
<dependency>
    <groupId>com.fasterxml.jackson.module</groupId>
    <artifactId>jackson-module-kotlin</artifactId>
    <version>RELEASE</version>
</dependency>
...
</dependencies>
  • Раздел плагинов:
<plugins>
...
<plugin>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-maven-plugin</artifactId>
    <version>${kotlin.version}</version>
    <configuration>
        <args>
            <!-- для усиления контроля Nullable из Java -->
            <arg>-Xjsr305=strict</arg>
        </args>
        <compilerPlugins>
            <!-- если используете Spring -->
            <plugin>spring</plugin>
        </compilerPlugins>
        <jvmTarget>${kotlin.compiler.jvmTarget}</jvmTarget>
    </configuration>
    <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>
        <!-- если используете MapStruct -->
        <execution>
            <id>kapt</id>
            <goals>
                <goal>kapt</goal>
            </goals>
            <configuration>
                <sourceDirs>
                    <sourceDir>src/main/kotlin</sourceDir>
                    <sourceDir>src/main/java</sourceDir>
                </sourceDirs>
                <annotationProcessorPaths>
                    <annotationProcessorPath>
                        <groupId>org.mapstruct</groupId>
                        <artifactId>mapstruct-processor</artifactId>
                        <version>RELEASE</version>
                    </annotationProcessorPath>
                </annotationProcessorPaths>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <!-- если используете Spring (делает классы, помеченные аннотациями @Service, @Component и т.д., открытыми и возможными к обработке spring framework) -->
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-allopen</artifactId>
            <version>${kotlin.version}</version>
        </dependency>
    </dependencies>
</plugin>
...
</plugins>


Report Page