1
0
Fork 0
mirror of https://codeberg.org/beerbrawl/beerbrawl.git synced 2024-09-22 21:20:52 +02:00

feat: backend: add support for kotlin besides java

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
This commit is contained in:
Christoph Heiss 2024-07-11 21:53:33 +02:00
parent 8e321dc7eb
commit f2893bceb9
Signed by: c8h4
GPG key ID: 73D5E7FDEE3DE49A
2 changed files with 161 additions and 0 deletions

View file

@ -0,0 +1,13 @@
---
- name: DIKTAT_COMMON
configuration:
domainName: at.beerbrawl.backend
testDirs: test
kotlinVersion: 2.0
srcDirectories: main
- name: TRAILING_COMMA
enabled: true
configuration:
valueArgument: true
valueParameter: true

View file

@ -15,6 +15,10 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>21</java.version>
<kotlin.version>2.0.0</kotlin.version>
<kotlin.language.version>2.0</kotlin.language.version>
<kotlin.code.style>official</kotlin.code.style>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
<maven-surefire-plugin.version>3.3.0</maven-surefire-plugin.version>
<maven.compiler.plugin>3.13.0</maven.compiler.plugin>
@ -32,6 +36,7 @@
<spotless.version>2.43.0</spotless.version>
<spotless.prettier.version>3.3.2</spotless.prettier.version>
<spotless.prettier-plugin-java.version>2.6.0</spotless.prettier-plugin-java.version>
<spotless.diktat.version>2.0.0</spotless.diktat.version>
<spring.boot.version>3.3.1</spring.boot.version>
<spring.security.version>6.3.1</spring.security.version>
<springdoc-openapi-ui.version>2.5.0</springdoc-openapi-ui.version>
@ -51,6 +56,21 @@
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-lombok</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
@ -145,6 +165,93 @@
<build>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<configuration>
<args>
<arg>-Xjsr305=strict</arg>
</args>
<compilerPlugins>
<plugin>all-open</plugin>
<plugin>jpa</plugin>
<plugin>no-arg</plugin>
<plugin>spring</plugin>
</compilerPlugins>
<languageVersion>${kotlin.language.version}</languageVersion>
<jvmTarget>${java.version}</jvmTarget>
</configuration>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-lombok</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-allopen</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-noarg</artifactId>
<version>${kotlin.version}</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>kapt</id>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/main/java</sourceDir>
</sourceDirs>
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>${jpamodelgen.version}</version>
</annotationProcessorPath>
<annotationProcessorPath>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</execution>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/main/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/test/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
@ -190,6 +297,30 @@
<compilerArg>-Amapstruct.defaultComponentModel=spring</compilerArg>
</compilerArgs>
</configuration>
<executions>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
<execution>
<id>java-compile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
</execution>
<execution>
<id>java-test-compile</id>
<goals>
<goal>testCompile</goal>
</goals>
<phase>test-compile</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
@ -299,6 +430,23 @@
<file>.license-header</file>
</licenseHeader>
</java>
<kotlin>
<ktfmt>
<style>KOTLINLANG</style>
<maxWidth>100</maxWidth>
<blockIndent>4</blockIndent>
<continuationIndent>4</continuationIndent>
<removeUnusedImport>true</removeUnusedImport>
</ktfmt>
<ktlint></ktlint>
<diktat>
<version>${spotless.diktat.version}</version>
<configFile>.diktat-analysis.yaml</configFile>
</diktat>
<licenseHeader>
<file>.license-header</file>
</licenseHeader>
</kotlin>
<yaml>
<includes>
<include>.diktat-analysis.yaml</include>