[Java]104 Makefileによるappファイル作成自動化

[M1 Mac, Big Sur 11.6.4]

これまで手動だったappファイル作成をMakefileにより自動化しました。

下記ファイルによりmakeコマンド一発でjarファイルを作成・署名し、appファイルを作成できます。これを応用してApple公証用zipファイル提出まで一気に実行することも可能でしょう。

# コンパイラ・ビルダ設定
COMPILER = javac
BUILDER = jar

# jarファイル設定
TARGET = test.jar
TARGETDIR = ../bin
MAIN_CLASS = Test

# jarファイル作成および署名,appファイル作成
$(TARGET):
	$(COMPILER) -d $(TARGETDIR) base/*.java -encoding utf-8
	cp -r ./images ../bin/images
	cp -r ./properties ../bin/properties
	cd $(TARGETDIR) && pwd && \
	$(BUILDER) cfe $@ base.$(MAIN_CLASS) \
		base/*.class \
		btn_action/*.class \
		xml/*.class \
		properties/*.* \
		images/*.png && \
	cp -f ../entitlements.plist entitlements.plist && \
	codesign --force --verify --verbose \
		--sign [mac-signing-key-user-name] \
		"test.jar" \
		--deep \
		--options runtime \
		--entitlements entitlements.plist \
		--timestamp
	cd .. && \
	jpackage --type app-image \
        --name test \
        --input bin \
        --main-jar test.jar \
        --icon bin/images/test.icns \
        --copyright "Copyright (C) 2021-2022" \
        --mac-signing-key-user-name [mac-signing-key-user-name] \
        --app-version "1.6.7" \
        --vendor [ベンダ名] \
        --runtime-image jre-mini