jDeploy: Java(Kotlin) で作成したコマンドラインツールを npm で公開する¶
jDeploy を使います。
準備¶
npm および jDeploy をインストールします。
npm install -g npm jdeploy
npm リポジトリ にユーザーを作成しておきます。
プロジェクトの設定¶
package.json の作成¶
以下のコマンドを実行すると雛形が生成されます。
jdeploy init
package.json にパッケージ名を入力します。
{
"name": "app-name",
...
}
ビルド¶
jDeploy でデプロイできるのは単体で動作する jar ファイルであり、依存するクラスを自動的に解決してくれません。そのため、ライブラリに依存している場合はそのすべてを含めた Fat JAR を生成する必要があります。
build.gradle に以下のようなタスクを追加し、Fat Jar を作成します。
task fatJar(type: Jar) {
manifest {
attributes 'Main-Class': "MainKt"
}
from {
configurations.runtimeClasspath.collect {
it.isDirectory() ? it : zipTree(it)
}
}
zip64 true
with jar
}
ビルド例
./gradlew fatJar
デプロイ¶
package.json の jdeploy.jar に、パッケージに含める JAR ファイルのパスを指定します。
"jdeploy": {
"jar": "build/libs/app-1.0.jar"
}
npm にログインします。
npm login
以下のコマンドでデプロイします。
jdeploy publish
これにより、jdeploy-bundle ディレクトリに jar ファイルと必要なファイルが作成され、npm パッケージとしてデプロイされます。