Crie um projeto Java e Kotlin com o Maven

Crie um projeto Java e Kotlin com o Maven

1. Introdução

Neste tutorial rápido, veremos como configurar umMaven project manipulando fontesJavaeKotlin.

Primeiro, criaremos um projeto apenas para fontesJava. Em seguida, adicionaremos okotlin-maven-plugin to handleKotlin  também.

E, finalmente, vamos adicionar algumas classes fictícias, empacotar nosso aplicativo e testar se tudo funciona como esperado.

2. Crie um projeto Java com o Maven

Primeiro de tudo,let’s create a straightforward Java project with Maven:

maven-java-kotlin
jar


    1.8



    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.1
            
                ${java.version}
                ${java.version}
            
        
    

Este arquivopom contém tudo o que precisamos para compilar os fontesJava e empacotá-los em um arquivojar.

3. Adicionar plug-in do Kotlin Maven

Agora precisamos ajustar este arquivopom para que ele possa lidar com as fontesKotlin também.

Vamos primeiro adicionarkotlin.version às nossas propriedades e kotlin-stdlib-jdk8 to our dependencies. Dessa forma, teremos acesso aos recursos deKotlin:


    1.8
    1.2.51



    
        org.jetbrains.kotlin
        kotlin-stdlib-jdk8
        ${kotlin.version}
    

Então,we need to add the kotlin-maven-plugin para nossos plug-insMaven.

Vamos configurá-lo para lidar com as metascompile etest-compile, informando onde encontrar nossas fontes.

Por convenção, mantemos as fontesJavaeKotlin em diretórios diferentes, embora pudéssemos colocá-los todos no mesmo:


    kotlin-maven-plugin
    org.jetbrains.kotlin
    ${kotlin.version}
    
        
            compile
            
                compile
            
            
                
                    ${project.basedir}/src/main/kotlin
                    ${project.basedir}/src/main/java
                
            
        
        
            test-compile
            
                test-compile
            
            
                
                    ${project.basedir}/src/test/kotlin
                    ${project.basedir}/src/test/java
                
            
        
    

Isso é quase o fim da configuração. Precisamosadapt maven-compiler-plugin configuration as we need Kotlin sources to be compiled before Java sources.

Freqüentemente,Maven execuções de plugins acontecem de acordo com a ordem de declaração. Portanto, devemos colocarmaven-compiler-plugin mais segurokotlin-maven-plugin. Mas o primeiro tem duas execuções específicas que são executadas antes de tudo durante as fases:default-compileedefault-testCompile.

Precisamos desabilitá-los e habilitarjava-compileejava-test-compile para garantir que a execução dekotlin-maven-plugin acontecerá antes demaven-compiler-plugin:


    org.apache.maven.plugins
    maven-compiler-plugin
    3.1
    
        ${java.version}
        ${java.version}
    
    
        
            default-compile
            none
        
        
            default-testCompile
            none
        
        
            java-compile
            compile
            
                compile
            
        
        
            java-test-compile
            test-compile
            
                testCompile
            
        
    

Podemos ver que as execuções padrão são desabilitadas usando a fasenone, e as execuções específicas deJava são limitadas às fasescompileetest-compile.

4. Diga 'Olá, mundo!' com Java e Kotlin

Agora que configuramos tudo corretamente, vamos dizer olá para o mundo ... deJava eKotlin.

Para fazer isso, vamos criar uma classeApplication com um métodomain() . Este método chamará uma classeJava ouKotlin de acordo com seu primeiro argumento:

public class Application {

    static String JAVA = "java";
    static String KOTLIN = "kotlin";

    public static void main(String[] args) {
        String language = args[0];
        switch (language) {
            case JAVA:
                new JavaService().sayHello();
                break;
            case KOTLIN:
                new KotlinService().sayHello();
                break;
            default:
                // Do nothing
                break;
        }
    }
}

As classesJavaService eKotlinService estão simplesmente dizendo “Olá, mundo!”:

public class JavaService {

    public void sayHello() {
        System.out.println("Java says 'Hello World!'");
    }

}
class KotlinService {

    fun sayHello() {
        System.out.println("Kotlin says 'Hello World!'")
    }

}

Agora podemos compilar e empacotar nosso aplicativo chamando o comandomvn package.

Vamos testar o jar produzido executando os seguintes comandos em um terminal:

java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "java"

Como podemos ver, isso chama a classeJavaService que imprime no console “Java diz‘ Hello World! '”.

java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "kotlin"

E este chamaKotlinService class, que imprime “Kotlin diz‘ Hello World! '”.

5. Conclusão

Neste artigo, nos concentramos em como criar um projeto Maven tratando de fontesJavaeKotlin , compilando-as e empacotando-as emjar.

O código completo pode ser examinadoover on GitHub.