kdnakt blog

hello there.

KotlinでHTTPサーバーを作るアドベントカレンダー(4日目:Kotlinプロジェクトの.gitignore)

この記事はkdnaktの1人 Advent Calendar 2020の4日目の記事です。

 

2020年は会社でKotlin dojoを主催して週1回30分Kotlinと戯れていました。12月はその集大成ということで、KotlinでHTTPサーバーを作ってみたいと思います。どこまでできるか、お楽しみ……。

 

 

[環境依存情報などをignoreする]

3日目はHello worldのためのシンプルなKotlin/Nativeの設定ファイルやソースコードを実装し、ネイティブバイナリをビルドして、Hello worldを実行しました。

 

しかし、このままでは「.gradle」や「build」といった環境依存情報やバイナリを含むディレクトリがgitリポジトリに追加されてしまいます。これを避けるには.gitignoreファイルを作成する必要があります。

Gradleを本格的に利用するのは今回がはじめてのため、どのディレクトリ、ファイルをignoreすれば良いのかやや不安がありました。

 

こんなときに利用可能な.gitignoreのベストプラクティス集であるgithub/gitignoreの存在は知っていたのですが、.gitignoreファイルを作成するより良い方法はないかと検索していたところ、以下の記事を発見しました。

blog1.mammb.com

 

Javaプロジェクトの.gitignoreファイルを作成する場合のコマンドとして、以下が紹介されています。

$ curl -sS https://raw.githubusercontent.com/github/gitignore/master/{\
Java.gitignore,\
Gradle.gitignore,\
Global\/JetBrains.gitignore,\
Global\/Eclipse.gitignore,\
Global\/NetBeans.gitignore,\
Global\/macOS.gitignore,\
Global\/Linux.gitignore,\
Global\/Windows.gitignore\
} >> .gitignore

 

今回はKotlinプロジェクトなので、Java.gitignoreとなっていたところをKotlin.gitignoreに修正して、以下のようにコマンドを実行してみました。

$ curl -sS https://raw.githubusercontent.com/github/gitignore/master/{\
Kotlin.gitignore,\
Gradle.gitignore,\
Global\/JetBrains.gitignore,\
Global\/Eclipse.gitignore,\
Global\/NetBeans.gitignore,\
Global\/macOS.gitignore,\
Global\/Linux.gitignore,\
Global\/Windows.gitignore\
} >> .gitignore

 

しかし、作成された.gitignoreファイルを見ると次のようになっており、.gradleディレクトリが正しくignoreされませんでした。

Java.gitignore.gradle
**/build/

(省略)

 

github/gitignoreリポジトリを確認すると、Kotlin.gitignoreは確かに存在するものの、Java.gitignoreへのシンボリックリンクとなっていたため、意図しない.gitignoreファイルの内容となったようです。

最終的にはJavaプロジェクト用と同じコマンドを実行して、.gradleディレクトリが正しくignoreされる.gitignoreファイルを手に入れることができました。

 

[まとめ]

  • github/gitignoreから複数の.gitignoreファイルをまとめて、Kotlinプロジェクト用の.gitignoreファイルを手に入れた
  • 基本的にはJavaプロジェクトと同じ.gitignoreファイルで問題なさそう
  • 実装中のコードは以下のリポジトリにまとめてある

github.com