Mavenを使用してJavaおよびKotlinプロジェクトを作成する
1. 前書き
このクイックチュートリアルでは、JavaとKotlinの両方のソースを処理するMaven プロジェクトを設定する方法を説明します。
まず、Javaソースのみのプロジェクトを作成します。 次に、kotlin-maven-plugin を追加してKotlin も処理します。
最後に、ダミークラスをいくつか追加し、アプリケーションをパッケージ化して、すべてが期待どおりに機能するかどうかをテストします。
2. Mavenを使用してJavaプロジェクトを作成する
まず第一に、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}
このpomファイルには、Javaソースをコンパイルしてjarファイルにパッケージ化するために必要なものがすべて含まれています。
3. Kotlin Mavenプラグインを追加
次に、このpomファイルを調整して、Kotlinソースも処理できるようにする必要があります。
まず、プロパティと kotlin-stdlib-jdk8 to our dependenciesにkotlin.versionを追加しましょう。 このようにして、Kotlinの機能にアクセスできるようになります。
1.8
1.2.51
org.jetbrains.kotlin
kotlin-stdlib-jdk8
${kotlin.version}
次に、we need to add the kotlin-maven-pluginをMavenプラグインに接続します。
compileとtest-compileの両方の目標を処理するように構成し、ソースの場所を指定します。
慣例により、JavaとKotlinのソースは異なるディレクトリに保持しますが、すべて同じに配置することもできます。
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
これで設定はほぼ終わりです。 adapt maven-compiler-plugin configuration as we need Kotlin sources to be compiled before Java sourcesにする必要があります。
多くの場合、Mavenプラグインの実行は、宣言の順序に従って行われます。 したがって、maven-compiler-plugin の後にkotlin-maven-pluginを配置する必要があります。 ただし、前者には、フェーズ中に他のすべての前に実行される2つの特定の実行があります。default-compileとdefault-testCompileです。
kotlin-maven-pluginの実行がmaven-compiler-plugin:の前に行われるようにするには、それらを無効にし、代わりにjava-compileとjava-test-compileを有効にする必要があります。
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
フェーズnoneを使用すると、デフォルトの実行が無効になり、Java固有の実行がcompileおよびtest-compileフェーズにバインドされていることがわかります。
4. 「Hello World!」と発声してくださいJavaとKotlinの両方で
すべてが正しく設定されたので、JavaとKotlinの両方から世界に挨拶しましょう。
そのために、main() メソッドを使用してApplicationクラスを作成しましょう。 このメソッドは、最初の引数に従って、JavaまたはKotlinクラスを呼び出します。
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;
}
}
}
JavaServiceクラスとKotlinServiceクラスは、単に「HelloWorld!」と言っています。
public class JavaService {
public void sayHello() {
System.out.println("Java says 'Hello World!'");
}
}
class KotlinService {
fun sayHello() {
System.out.println("Kotlin says 'Hello World!'")
}
}
これで、mvn packageコマンドを呼び出して、アプリケーションをコンパイルおよびパッケージ化できます。
ターミナルで次のコマンドを実行して、生成されたjarをテストしてみましょう。
java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "java"
ご覧のとおり、これはJavaServiceクラスを呼び出し、コンソールに「Javaは「HelloWorld!」と言います」と出力します。
java -cp maven-java-kotlin-1.0.0-SNAPSHOT.jar path.to.your.Class "kotlin"
そして、これはKotlinServiceクラスを呼び出し、「Kotlinは「Hello World!」と言います」と出力します。
5. 結論
この記事では、JavaとKotlin の両方のソースを処理するMavenプロジェクトを作成し、それらをコンパイルしてjarにパッケージ化する方法に焦点を当てました。
完全なコードはover on GitHubで調べることができます。