2013-09-26 40 views
2

因爲我想使用ActiveAndroidActiveAndroid-Validation我需要使用Maven(直到昨天我才聽說過)。所以我安裝了maven,然後嘗試安裝ActiveAndroid。關於Joda時間的Maven投訴,儘管我安裝了它

我在ActiveAndroid中使用JodaTime寫了一個custom serializer,並在ActiveAndroid庫文件夾中包含了一個JodaTime jar。當我使用ant構建項目時,它工作得非常好。首先使用Maven downloaded並在Maven中使用mvn clean install從JodaTime源文件夾中安裝JodaTime。看到下面的線,這是成功的:

[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] ------------------------------------------------------------------------ 

然後我試圖安裝ActiveAndroid使用相同mvn clean install從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可以找到here。我沒有改變任何東西。

+0

我們需要查看項目的pom以獲得幫助。 –

+0

@SamuelEUSTACHI - 在問題中添加了一個指向ActiveAndroids pom.xml的鏈接。我需要將JodaTime添加到pom嗎?如果是這樣,我該怎麼做? – kramer65

+0

是的,我添加了一個答案。 –

回答

1

如果您的IDE沒有抱怨,這意味着您的IDE可能會構建該項目。

然後我假設你的IDE不依賴maven來構建。我會建議maven和你的IE之間的更強大的整合。 你不應該到庫手動添加到類路徑中(在IDE)

你的POM小姐的依賴

<dependency> 
    <groupId>joda-time</groupId> 
    <artifactId>joda-time</artifactId> 
    <version>2.3</version> 
</dependency> 
+0

啊,太棒了!這確實使我更進一步。現在它給了我另一個錯誤:生成源時出錯。 org.apache.maven.plugin.MojoExecutionException:找不到Android SDK路徑。 [...] [錯誤]未能執行目標com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources。我已經安裝了Eclipse,整個Android設置和一切。任何其他想法我怎麼能解決這個問題? – kramer65

+0

我想你需要創建一個系統變量:ANDROID_HOME –

+0

我試着將ANDROID_HOME設置爲/ Users/kramer65/dev/adt-bundle-mac-x86_64-20130917,但是這樣會導致錯誤:無法執行目標com.jayway。 maven.plugins.android。第二代:android-maven-plugin:3.6.0:生成源代碼(默認生成源)上的項目activeandroid測試:執行默認生成目標的源com.jayway.maven.plugins.android.generation2:android- maven-plugin:3.6.0:generate-sources failed:Error reading /Users/kramer/dev/adt-bundle-mac-x86_64-20130917/tools/source.properties - > [Help 1]。任何其他想法? – kramer65

0

正如你在你構建一個Android,Maven的插件,您需要提供SDK的路徑。對於這個maven插件,這是通過在POM的屬性部分添加它作爲屬性(android.sdk.path)來完成的。

所以你有這樣的事情:

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

對於快速的解決方案,你可以添加這個到POM的屬性部分。但是,像這樣的本地設置通常會轉到maven安裝中的conf目錄下的settings.xml文件。無論你使用哪種物品,這都會使這個物品永遠在場。或者,如果您跳過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> 
相關問題