6

私のAndroidアプリケーションは、サードパーティのAndroidライブラリプロジェクトに依存しています。ビルド環境をMavenに切り替えており、サンプルのフォローはかなりスムーズに進んでいますが、最後のステップはこれです。実際に何をする必要があるのか​​わかりませここでapklibページを読みました。私は、あなたが実際にこのドキュメントよりも優れていることを中心にドキュメントが踊るのを見たことがありません。apklibを参照する方法のスニペットが1つ含まれていますが、実際にそれを生成する方法についての情報はまったくありませんか?

また、私のプロジェクト構造は次のようになります

/projectroot/app   (main application android project source code)
/projectroot/shared/lib1  
/projectroot/shared/lib2 (3rd party lib i don't want to create pom.xml for)

次のようなモジュールセクションを持つprojectroot/pom.xmlがあります。

<modules>
    <module>shared/lib1</module>
    <module>shared/lib2</module>
    <module>app</module>
</modules>

これは正しいですか?すべてのモジュールの例で、それらはフォルダーの直接の子を参照しているのに対し、私のものはさらにネストされています。

私が探している主なものは、lib2をapp/pom.xmlから参照するapklibにする方法です。

4

1 に答える 1

2

あなたが参照したリンクに記載されています:

Maven以外のAndroidライブラリプロジェクトと互換性があります!

生成された.apklibファイルは、標準のAndroid/Eclipseライブラリプロジェクトのレイアウトになります。つまり、Mavenレイアウトに関係なく、.apklibファイル内のレイアウトでは、ソースコードは「src / main / java/」ではなく「src/」にありますが、Android/Mavenアプリケーションで使用すると正しく解釈されます。事業。これは、Maven以外の開発者のライブラリプロジェクトと互換性があるためです。これは、Android開発者コミュニティを成長させるために重要です。

他のMaven以外の開発者のライブラリを使用する

また、外部のAndroidライブラリプロジェクトのzipファイル(Maven以外の開発者から)を取得してmvn install:install-file ...を実行し、依存関係として使用を開始できることも意味します。

.apklibをMaven以外の開発者と共有する

.apklibファイルをMaven以外の開発者と共有するには、名前を.zipに変更すると、開発者はおそらくより快適に感じるでしょう。その後、ディレクトリに解凍して、そこから使用できます。

Maven化されたAndroidライブラリプロジェクトの場合は、実行mvn clean installしてapklibを作成し、ローカルのMavenリポジトリにインストールします。

通常のAndroidライブラリプロジェクトの場合は、プロジェクトフォルダーをzip形式で圧縮し(IDEで生成された不要なファイルをすべて削除することをお勧めします)、my-lib.zipの名前をmy-lib.apklibに変更してから、実行mvn install:install-fileしてmy-lib.apklibをローカルにインストールします。 Mavenリポジトリ。

マルチモジュールMavenプロジェクトで、子モジュールlib2がMaven化されていない場合、mavenビルドの実行時に構成エラーが発生する可能性があることに注意してください。これはマルチモジュールMavenプロジェクトと呼ばれるため、非モジュールMavenプロジェクトを含めることはあまり意味がありません。 -Mavenized子プロジェクト。lib2がまだmaven化されていない場合は、mutli-module mavenプロジェクトの一部としてmavenizeするか、mutli-module mavenプロジェクトから削除して、別々に保守します(apklibを介したコマンドラインビルドとソースを介したIDE開発の両方から)。

また、MavenとEclipseでのプロジェクト構築はまったく別の話であることに注意してください。プロジェクトを作成してIDEにインポートする場合は、とにかくライブラリプロジェクトソースが必要です。lib2がマルチモジュールプロジェクトの一部としてmavenizedされている場合、親プロジェクトをインポートするときに自動的にインポートおよびセットアップされます。そうでない場合は、スタンドアロンプ​​ロジェクトを手動でインポートしてセットアップする必要があります。詳細については、この回答この回答を確認してください。

于 2012-12-15T00:29:11.913 に答える