Nuestro equipo de redactores ha pasado mucho tiempo buscando para darle soluciones a tus dudas, te dejamos la solución de modo que nuestro objetivo es que te resulte de mucha ayuda.
Complemento y versiones
los complemento de kotlin-maven compila fuentes y módulos de Kotlin. Actualmente, solo se admite Maven v3.
Defina la versión de Kotlin que desea utilizar mediante un kotlin.version propiedad:
<properties><kotlin.version>1.4.10kotlin.version>properties>
Dependencias
Kotlin tiene una extensa biblioteca estándar que se puede utilizar en sus aplicaciones. Configure la siguiente dependencia en el archivo pom:
<dependencies><dependency><groupId>org.jetbrains.kotlingroupId><artifactId>kotlin-stdlibartifactId><version>$kotlin.versionversion>dependency>dependencies>
Si tiene como objetivo JDK 7 o JDK 8, puede usar versiones extendidas de la biblioteca estándar de Kotlin que contienen funciones de extensión adicionales para las API agregadas en las nuevas versiones de JDK. En lugar de kotlin-stdlib
, usar kotlin-stdlib-jdk7
o kotlin-stdlib-jdk8
, dependiendo de su versión de JDK (para Kotlin 1.1.x use kotlin-stdlib-jre7
y kotlin-stdlib-jre8
como el jdk
las contrapartes se introdujeron en 1.2.0).
Si su proyecto utiliza las instalaciones de prueba o reflexión de Kotlin, también debe agregar las dependencias correspondientes. Los ID de artefactos son kotlin-reflect
para la biblioteca de reflexión, y kotlin-test
y kotlin-test-junit
para las bibliotecas de prueba.
Compilar solo el código fuente de Kotlin
Para compilar el código fuente, especifique los directorios fuente en el
<build><sourceDirectory>$project.basedir/src/main/kotlinsourceDirectory><testSourceDirectory>$project.basedir/src/test/kotlintestSourceDirectory>build>
Es necesario hacer referencia al complemento Kotlin Maven para compilar las fuentes:
<build><plugins><plugin><groupId>org.jetbrains.kotlingroupId><artifactId>kotlin-maven-pluginartifactId><version>$kotlin.versionversion><executions><execution><id>compileid><goals><goal>compilegoal>goals>execution><execution><id>test-compileid><goals><goal>test-compilegoal>goals>execution>executions>plugin>plugins>build>
Compilar fuentes de Kotlin y Java
Compilar mixed Aplicaciones de código El compilador de Kotlin debe invocarse antes que el compilador de Java. En términos de expertos, eso significa que kotlin-maven-plugin
debería correr antes maven-compiler-plugin
utilizando el siguiente método. Asegúrese de que el kotlin
el complemento viene antes del maven-compiler-plugin
en tus pom.xml
expediente:
<build><plugins><plugin><groupId>org.jetbrains.kotlingroupId><artifactId>kotlin-maven-pluginartifactId><version>$kotlin.versionversion><executions><execution><id>compileid><goals><goal>compilegoal>goals><configuration><sourceDirs><sourceDir>$project.basedir/src/main/kotlinsourceDir><sourceDir>$project.basedir/src/main/javasourceDir>sourceDirs>configuration>execution><execution><id>test-compileid><goals><goal>test-compilegoal>goals><configuration><sourceDirs><sourceDir>$project.basedir/src/test/kotlinsourceDir><sourceDir>$project.basedir/src/test/javasourceDir>sourceDirs>configuration>execution>executions>plugin><plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-compiler-pluginartifactId><version>3.5.1version><executions><execution><id>default-compileid><phase>nonephase>execution><execution><id>default-testCompileid><phase>nonephase>execution><execution><id>java-compileid><phase>compilephase><goals><goal>compilegoal>goals>execution><execution><id>java-test-compileid><phase>test-compilephase><goals><goal>testCompilegoal>goals><configuration><skip>$maven.test.skipskip>configuration>execution>executions>plugin>plugins>build>
Compilación incremental
Para que sus compilaciones sean más rápidas, puede habilitar la compilación incremental para Maven (compatible desde Kotlin 1.1.2). Para hacer eso, defina el kotlin.compiler.incremental
propiedad:
<properties><kotlin.compiler.incremental>truekotlin.compiler.incremental>properties>
Alternativamente, ejecute su compilación con el -Dkotlin.compiler.incremental=true
opción.
Procesamiento de anotaciones
Consulte la descripción de la herramienta de procesamiento de anotaciones de Kotlin (kapt
).
Soporte de corrutinas
El soporte de corrutinas es una característica experimental en Kotlin 1.2, por lo que el compilador de Kotlin informa una advertencia cuando usa corrutinas en su proyecto. Para desactivar la advertencia, agregue el siguiente bloque a su pom.xml
expediente:
<configuration><experimentalCoroutines>enableexperimentalCoroutines>configuration>
Archivo jar
Para crear un pequeño archivo Jar que contenga solo el código de su módulo, incluya lo siguiente en build->plugins
en su archivo pom.xml de Maven, donde main.class
se define como una propiedad y apunta a la clase principal de Kotlin o Java:
<plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-jar-pluginartifactId><version>2.6version><configuration><archive><manifest><addClasspath>trueaddClasspath><mainClass>$main.classmainClass>manifest>archive>configuration>plugin>
Archivo Jar autónomo
Para crear un archivo Jar autónomo que contenga el código de su módulo junto con las dependencias, incluya lo siguiente en build->plugins
en su archivo pom.xml de Maven, donde main.class
se define como una propiedad y apunta a la clase principal de Kotlin o Java:
<plugin><groupId>org.apache.maven.pluginsgroupId><artifactId>maven-assembly-pluginartifactId><version>2.6version><executions><execution><id>make-assemblyid><phase>packagephase><goals><goal>singlegoal>goals><configuration><archive><manifest><mainClass>$main.classmainClass>manifest>archive><descriptorRefs><descriptorRef>jar-with-dependenciesdescriptorRef>descriptorRefs>configuration>execution>executions>plugin>
Este archivo jar autónomo se puede pasar directamente a un JRE para ejecutar su aplicación:
java -jar target/mymodule-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Especificar las opciones del compilador
Se pueden especificar opciones y argumentos adicionales para el compilador como etiquetas en el
elemento del nodo del complemento Maven:
<plugin><groupId>org.jetbrains.kotlingroupId><artifactId>kotlin-maven-pluginartifactId><version>$kotlin.versionversion><executions>...executions><configuration><nowarn>truenowarn><args><arg>-Xjsr305=strictarg> ... args>configuration>plugin>
Muchas de las opciones también se pueden configurar a través de propiedades:
<project...><properties><kotlin.compiler.languageVersion>1.0kotlin.compiler.languageVersion>properties>project>
Se admiten los siguientes atributos:
Atributos comunes para JVM y JS
Nombre | Nombre de la propiedad | Descripción | Valores posibles | Valor por defecto |
---|---|---|---|---|
nowarn |
No generar advertencias | true, false | false | |
languageVersion |
kotlin.compiler.languageVersion |
Proporcionar compatibilidad de fuente con la versión especificada de Kotlin | “1.2 (ANULADO)”, “1.3”, “1.4”, “1.5 (EXPERIMENTAL)” | |
apiVersion |
kotlin.compiler.apiVersion |
Permitir el uso de declaraciones solo de la versión especificada de las bibliotecas empaquetadas | “1.2 (ANULADO)”, “1.3”, “1.4”, “1.5 (EXPERIMENTAL)” | |
sourceDirs |
Los directorios que contienen los archivos fuente para compilar | Las raíces de la fuente del proyecto | ||
compilerPlugins |
Complementos de compilador habilitados | [] | ||
pluginOptions |
Opciones para complementos del compilador | [] | ||
args |
Argumentos adicionales del compilador | [] |
Atributos específicos para JVM
Nombre | Nombre de la propiedad | Descripción | Valores posibles | Valor por defecto |
---|---|---|---|---|
jvmTarget |
kotlin.compiler.jvmTarget |
Versión de destino del código de bytes JVM generado | “1.6”, “1.8”, “9”, “10”, “11”, “12”, “13”, “14” | “1.6” |
jdkHome |
kotlin.compiler.jdkHome |
Incluya un JDK personalizado desde la ubicación especificada en la ruta de clase en lugar del JAVA_HOME predeterminado |
Atributos específicos para JS
Nombre | Nombre de la propiedad | Descripción | Valores posibles | Valor por defecto |
---|---|---|---|---|
outputFile |
Archivo de destino * .js para el resultado de la compilación | |||
metaInfo |
Genere archivos .meta.js y .kjsm con metadatos. Úselo para crear una biblioteca | true, false | true | |
sourceMap |
Generar mapa fuente | true, false | false | |
sourceMapEmbedSources |
Incrustar archivos de origen en el mapa de origen | “nunca”, “siempre”, “en línea” | “en línea” | |
sourceMapPrefix |
Agrega el especificado prefix a las rutas en el mapa de origen | |||
moduleKind |
El tipo de módulo JS generado por el compilador. | “umd”, “commonjs”, “amd”, “simple” | “umd” |
Generando documentación
El complemento estándar de generación de JavaDoc (maven-javadoc-plugin
) no es compatible con el código Kotlin. Para generar documentación para proyectos de Kotlin, use Dokka; por favor refiérase a README de Dokka para obtener instrucciones de configuración. Soportes Dokka mixedproyectos de lenguaje y puede generar resultados en múltiples formatos, incluido JavaDoc estándar.
OSGi
Para obtener soporte para OSGi, consulte la página de Kotlin OSGi.
Ejemplos de
Un ejemplo de proyecto Maven puede ser descargado directamente del repositorio de GitHub
Acuérdate de que tienes concesión de agregar una reseña si te fue de ayuda.