私はjavaを少し新しくしています。私はいくつかの用語を不完全に使うかもしれない。外部のjarファイル(これはmavenアーティファクトにはない)からクラスを持つmavenプロジェクトをコンパイルする
コアJava言語の一部ではないクラスが必要なので、ビルドにはmavenを使用しているプロジェクトを開発していますので、適切な<dependency>
セクションをpom.xml
に追加しましたmvnbrowser.comは私の本当の理解なしに)、私は自分が望むクラスを使用することができました。よく働く。
これで、使用したいJavaクラスが見つかりました。これは明らかに、Mavenアーティファクトでは使用できません。アンドロイドSDKと一緒に配布されているcom.android.sdklib.build.ApkBuilder
です。私は自分のコードを動作させるためにスタンドアロンのJavaプログラムを書いた。私はjavac
でコンパイルし、mavenではコンパイルしません。うまく動作します。そのため、私は、sdklib.jar
の希望のクラスを含むjarファイルを私のjre/lib/ext
ディレクトリ(FreeBSDマシンの/usr/local/jdk1.6.0/jre/lib/ext
)に入れ、私のimport com.android.sdklib.build.ApkBuilder
ラインはうまくコンパイルされ、ApkBuilder
を参照して問題なく使用できます。私は私のMavenプロジェクトに私の作業コードをコピーし、そしてmvn project
を構築しようとしたとき
は今、私は、インポート行にpackage com.android.sdklib.build does not exist
エラー、私はApkBuilder
を参照cannot find symbol: class ApkBuilder
エラーが発生します。
ネットを見渡すと、android-maven-plugin
が見つかりました:http://code.google.com/p/maven-android-plugin/です。それはmaven-android-sdk-deployer
ここに:https://github.com/mosabua/maven-android-sdk-deployer私に呼ばれました。これらのリードは最初は有望でしたが、私が知る限り、その目的は、私がやろうとしているものではない、mavenを使ったアンドロイドアプリケーションの開発です。私はちょうど私のjavaプログラムがandroid apk
ファイルを操作することを望むが、私のJavaプログラム自体はアンドロイドデバイス上で実行されていません。また、アンドロイドSDKは私が使用しているFreeBSDではなくLinuxで動作するように作られていますので、maven-android-sdk-deployer
のインストール手順に従うことはできません。私もmaven-apkbuilder-plugin
と呼ばれるアーティファクトを見つけましたが、それはまたアンドロイドアプリケーションを作成する目的であるようですが、私はそれについてのドキュメントを見ませんでした。だから私はこれらのリードを追求していません。
mvn package
を実行するとsdklib.jar
ファイルのために私のjre/lib/ext
フォルダを見るようにコンパイラを取得するのが一番簡単なことです。しかし、それは行く方法ではないかもしれません。コンパイラがsdklib.jar
を見つける原因となるpom.xml
に簡単な変更が加えられているかもしれません。私はhttp://maven.apache.org/pom.html#Build_Settingsのpomドキュメントを見ましたが、それを行う方法は見当たりませんでした。とにかく、少なくとも1つの解決策があると確信しています。私はちょうどそれを知らない(まだ)。
私のオプションは何ですか?私のビルドプロジェクトでApkBuilder
クラスを使用する最良の方法は何ですか?私はこの質問に自分自身で答えることができたと思います。ありがとう!!
あなたが問題の原因を正しく識別している - JARをクラスパスから欠落しています。 'jre/lib/ext'の強制給電は理想的ではありません。いくつかのMaven + Android開発ツールを調べてみてください(私はAndroidデベロッパについては何も知らない)。 M2e-Android(http://rgladwell.github.com/m2e-android/)は興味深いようです。それは、「Mavenの依存関係管理の力をADTにもたらします」 –