私は、ベースシステムとして多くのAndroidアプリで使用される汎用Androidゲームエンジンを開発しています。問題は、すべてのJavaファイルで、現在、パッケージ名を次のようにハードコーディングする必要があることです。
package com.example.mygameengine;
しかし、汎用ゲームエンジンのコードをさまざまなアプリで使用したいので、Javaソースのコピーをいくつか保持したくないので、コンパイル時にJavaファイルのパッケージ名を指定する方法を見つける必要があります。パッケージ名が違うため。中央のソースツリーを1つ作成したいのですが、コンパイルしようとしているアプリに応じて、パッケージ名を動的に変更できる必要があります。
だから、このようなことをする方法はありますか?
package $(PACKAGE_NAME)
$(PACKAGE_NAME)がコンパイル時に実際のパッケージ名に置き換えられるJavaソースでは?たぶんjavacには、ファイル自体から取得する代わりに、渡されるファイルのパッケージ名を指定できるオプションがありますか?私はEclipseを使用していませんが、antやmakeなどの必要最低限のコマンドラインツールを使用していることに注意してください。
編集:なぜこれが重複としてタグ付けされているのかわかりません。Java言語の「package」ディレクティブでソースコードにハードコードされた文字列引数が必要かどうか、またはコンパイラディレクティブを使用してコンパイル時にこのパッケージ名を設定することも可能かどうかについて、基本的な質問をしました。これは、Androidビルドシステムにより密接に関連していると思われる「元の」質問としてここにリンクされている質問とはまったく異なる質問です。私の質問は、Androidビルドシステムではなく、Java言語の基本についてです。