4

「android maven google mapsの依存関係が見つかりません」という質問をもう1つ追加して申し訳ありませんが、それに関するほとんどの投稿を読み、提案されたすべてのソリューションを適用しても成功しなかったと思います。

Maven を使用して参照されるのではなく、ワークスペースにインポートされた google-play-services_lib プロジェクトと eclipse ビルド パス ライブラリの依存関係を介して参照される、Google マップ V2 依存関係で正常に実行されている Maven Android プロジェクトがあります。

Robolectric を使用して Maven 自動テストを実装しているため、pom を介して google-play-services 依存関係を構成しようとしていますが、pom の最初の行にこのエラーが表示され、クイックフィックスがありません。

dependency=[com.google.android.gms:google-play-services:apklib:7:compile] ワークスペースに見つかりません

私がこれまでに試したことは、多くのグーグル検索の後、各ステップの後に結果を確認しても成功しませんでした:

  • 最初に android-maven-sdk-helper を使用してローカルの .m2 リポジトリに Google Play Services コンポーネントをインストールし (これらの手順に従って)、ローカルにインストールされたバージョンである jar と apklib バージョン 7 への 2 つの依存関係をプロジェクトに追加します (ここのように) 。 . この後、動作するはずでしたが、依存関係エラーが発生しました。

  • ライブラリ google-play-services_lib への参照を Eclipse ビルド パスから削除します (プロジェクト / 設定 / Android / ライブラリ内)。とにかく、google-play-services_lib プロジェクトはまだワークスペースにあります。

  • apklib をローカルの m2 リポジトリからワークスペースのどこかにコピーします: google-play-services_lib/bin、google-play-services_lib/libs、MyProject/libs を試しました。名前 google-play-services-7.apklib (リポジトリ ファイルと同様) および google-play-services.apklib を使用してテスト済み。

  • ワークスペースに含まれる google-play-services_lib プロジェクトを "Mavenise" にし、eclipse Configure / Convert to Maven project を実行します。生成された pom を編集して、パッケージ タイプを apklib: に更新し、apklib パッケージ タイプを認識するために<packaging>apklib</packaging>android-maven-plugin を追加しました。<extensions>true</extensions>プロジェクトをmaven goal compileでコンパイルして成功しましたが、生成されたapklibファイルがどこにも見つかりません。

これらの変更のたびに、Maven / Update プロジェクトを実行し、プロジェクトをクリーンアップし、Eclipse を再起動します。成功しません: 依存関係がスペース エラーで見つかりません。

他に何を試すべきかわかりません。それは図書館名の何かでしょうか?ライブラリ プロジェクト名は google.play-services_lib で、_lib サフィックスが付いています。Eclipse Android ライブラリ ビルド パスで参照される jar は _lib.jar ですが、Maven アーティファクトには _lib サフィックスがありません。また、コンポーネントとアーティファクトの名前を変更しようとしましたが、成功しませんでしたが、そこに問題がある可能性があります。誰かが mavenized google-play-services_lib プロジェクトの pom.xml の例を投稿できますか?

別の推測: mavenized ライブラリ プロジェクトを mvn コンパイルすると、生成された .apklib ファイルが見つからないのはなぜですか? mvn -X compile でトレースを確認しましたが、ヒントは見つかりませんでした。

環境とバージョン:

Eclipse Indigo
External maven 3.0.5 (embedded Maven 3.0.3 not used)
android-maven-plugin 3.6.0
maven-eclipse-plugin 2.8
m2e-android plugin (m2eclipse android integration) 0.4.2
Android API level 13

google-play-services_lib プロジェクトに追加した pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>google-play-services_lib</groupId>
<artifactId>google-play-services_lib</artifactId>
<version>7</version>
<packaging>apklib</packaging>

<properties>
    <android-platform>13</android-platform>
    <android-emulator>13</android-emulator>
    <android-maven-plugin-version>3.6.0</android-maven-plugin-version>
    <maven-compiler-plugin-version>3.0</maven-compiler-plugin-version>
    <java-version>1.6</java-version>
    <local-sdk-path>C:\NoProgramFiles\Android\android-sdk</local-sdk-path>
</properties>

<build>
    <finalName>${project.artifactId}</finalName>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>${android-maven-plugin-version}</version>
            <configuration>
                <sdk>
                    <path>${local-sdk-path}</path>
                    <platform>${android-platform}</platform>
                </sdk>
                <emulator>
                    <avd>${android-emulator}</avd>
                </emulator>
                <deleteConflictingFiles>true</deleteConflictingFiles>
                <undeployBeforeDeploy>true</undeployBeforeDeploy>
            </configuration>
            <extensions>true</extensions>
        </plugin>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven-compiler-plugin-version}</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>

4

2 に答える 2

1

名前の不一致が解決されても問題が解決しない場合 (ライブラリ pom とプロジェクト pom で同じ名前)、maven プロジェクトを更新した後 (プロジェクト エクスプローラーで、任意のプロジェクトを右クリック -> maven -> maven プロジェクトを更新) して、そのメッセージを削除してみてください (!!)

問題タブで、エラー メッセージを右クリックし、[削除] を選択します。私とケビン・ペックのために働いた-Eclipseの依存関係がワークスペースの修正に見つからない

于 2014-10-06T12:15:58.460 に答える