2

私はActiveAndroidActiveAndroid-Validationを使用したいので、Maven を使用する必要があります (昨日まで聞いたことがありませんでした)。だから私はmavenをインストールしてから、ActiveAndroidをインストールしようとしました。

JodaTime を使用して ActiveAndroid でカスタムシリアライザーを作成し、JodaTime jar を ActiveAndroid libs フォルダーに含めました。それを使用してプロジェクトをビルドすると、完全にうまく機能します。Maven を使用する まず、JodaTime ソース フォルダー内からJodaTime をダウンロードして Maven にインストールしました。次の行を確認すると、これは成功しました。antmvn clean install

[INFO] --- maven-install-plugin:2.4:install (default-install) @ joda-time ---
[INFO] Installing /Users/kramer65/Downloads/joda-time-2.3/target/joda-time-2.3.jar to /Users/kramer65/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3.jar
[INFO] Installing /Users/kramer65/Downloads/joda-time-2.3/pom.xml to /Users/kramer65/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3.pom
[INFO] Installing /Users/kramer65/Downloads/joda-time-2.3/target/joda-time-2.3-javadoc.jar to /Users/kramer65/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3-javadoc.jar
[INFO] Installing /Users/kramer65/Downloads/joda-time-2.3/target/joda-time-2.3-sources.jar to /Users/kramer65/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 47.603s
[INFO] Finished at: Thu Sep 26 13:00:54 CEST 2013
[INFO] Final Memory: 12M/81M
[INFO] ------------------------------------------------------------------------

mvn clean install次に、ActiveAndroidソースフォルダー内から同じものを使用してActiveAndroidをインストールしようとしました。ただし、これにより、次のエラーが発生しました。

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.095s
[INFO] Finished at: Thu Sep 26 13:01:08 CEST 2013
[INFO] Final Memory: 13M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project activeandroid: Compilation failure: Compilation failure:
[ERROR] /Users/kramer65/dev/repos/ActiveAndroid/src/com/activeandroid/serializer/JodaDateTimeSerializer.java:[3,21] package org.joda.time does not exist
[ERROR] /Users/kramer65/dev/repos/ActiveAndroid/src/com/activeandroid/serializer/JodaDateTimeSerializer.java:[22,16] cannot find symbol
[ERROR] symbol  : class DateTime
[ERROR] location: class com.activeandroid.serializer.JodaDateTimeSerializer
[ERROR] /Users/kramer65/dev/repos/ActiveAndroid/src/com/activeandroid/serializer/JodaDateTimeSerializer.java:[7,24] cannot find symbol
[ERROR] symbol  : class DateTime
[ERROR] location: class com.activeandroid.serializer.JodaDateTimeSerializer
[ERROR] /Users/kramer65/dev/repos/ActiveAndroid/src/com/activeandroid/serializer/JodaDateTimeSerializer.java:[19,26] cannot find symbol
[ERROR] symbol  : class DateTime
[ERROR] location: class com.activeandroid.serializer.JodaDateTimeSerializer
[ERROR] /Users/kramer65/dev/repos/ActiveAndroid/src/com/activeandroid/serializer/JodaDateTimeSerializer.java:[27,28] cannot find symbol
[ERROR] symbol  : class DateTime
[ERROR] location: class com.activeandroid.serializer.JodaDateTimeSerializer
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :activeandroid

これを解決する方法を知っている人はいますか?すべてのヒントは大歓迎です!

==編集== ActiveAndroid の pom.xml は、ここにあります。私はそれで何も変更しませんでした。

4

2 に答える 2

1

IDE が文句を言わない場合は、IDE がプロジェクトをビルドできたことを意味します。

それから、あなたの IDE は構築するために maven に依存していないと思います。Maven と IE をより強力に統合することをお勧めします。ライブラリをクラスパスに手動で追加することは想定されていません(IDEで)

あなたのPOMは依存関係を欠いています

<dependency>
  <groupId>joda-time</groupId>
  <artifactId>joda-time</artifactId>
  <version>2.3</version>
</dependency>
于 2013-09-26T11:32:49.747 に答える
0

ビルドに android-maven-plugin があるため、SDK へのパスを指定する必要があります。この Maven プラグインの場合、これは POM のプロパティ セクションにプロパティ (android.sdk.path) として追加することによって行われます。

したがって、次のようになります。

<properties>
    <android.sdk.path>your/path/here</android.sdk.path>
</properties>

迅速な解決策として、これをPOMのプロパティセクションに追加するだけです。ただし、このようなローカル設定は通常、maven インストール内の conf ディレクトリにある settings.xml ファイルに移動します。これにより、使用する pom に関係なく、このプロパティが常に存在するようになります。または、activeProfiles の部分をスキップする場合は、そのプロファイルを有効にして maven を呼び出す必要があります (「mvn -pandroidProfile clean install」)。

<profiles>
    <profile>
        <id>androidProfile</id>
        <properties>
            <android.sdk.path>your/path/here</android.sdk.path>
        </properties>
    </profile>
</profiles>
<activeProfiles>
    <activeProfile>androidProfile</activeProfile>
</activeProfiles>
于 2013-09-27T08:27:26.580 に答える