ActionBarSherlock + maven + eclipse:在工作区中找不到依赖项

我已经更新到最新版本的ADT插件,我面临这个问题 ,解决了更新m2e-androideclipse插件。 现在,我可以通过控制台编译我的项目,但不能使用eclipse。 这是eclipse中的pom.xml文件抛出的exception:

dependency=[com.actionbarsherlock:library:apklib:4.1.0:compile] not found in workspace

在以前版本的ADT / m2e-android中,我能够毫无问题地构buildconsole和eclipse。

有谁知道如何解决这个问题? 也许我的pom.xml是错的?

谢谢你的时间。


目前使用:

  • Eclipse的经典3.7.2(与朱诺的问题依然存在)
  • ADT 20.0.3
  • m2e-android 0.42
  • android-maven-plugin 3.3.0
  • maven 3.0.4
  • m2e 1.1.0(作为m2e-android 0.42的依赖项)

pom.xml中:

 <?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jelies</groupId> <artifactId>my-project</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>apk</packaging> <dependencies> <dependency> <groupId>android</groupId> <artifactId>android</artifactId> <version>4.1_r2</version> <scope>provided</scope> </dependency> <!-- some unrelated dependencies --> <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>library</artifactId> <version>4.1.0</version> <type>apklib</type> </dependency> </dependencies> <build> <finalName>${project.artifactId}</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <executions> <execution> <id>attach-sources</id> <phase>verify</phase> <goals> <goal>jar-no-fork</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.4</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>com.jayway.maven.plugins.android.generation2</groupId> <artifactId>android-maven-plugin</artifactId> <version>3.3.0</version> <configuration> <sdk> <platform>16</platform> </sdk> <emulator> <avd>avd-4.1</avd> </emulator> <deleteConflictingFiles>true</deleteConflictingFiles> <undeployBeforeDeploy>true</undeployBeforeDeploy> </configuration> <extensions>true</extensions> </plugin> </plugins> </build> <profiles> <profile> <id>eclipse</id> <activation> <!-- This profile is only activated when m2e.version is present (only in eclipse) --> <property> <name>m2e.version</name> </property> </activation> <dependencies> <dependency> <groupId>com.google.android</groupId> <artifactId>support-v4</artifactId> <version>r7</version> <scope>provided</scope> </dependency> </dependencies> </profile> </profiles> </project> 

编辑:

答案是对的。 让ABS库项目在我的工作空间中变得更加复杂,错误消失了! 但是,另一个问题出现了:ABS传递依赖项被添加到我的项目中,导致eclipse无法启动应用程序。 这是您可以在此处遵循的已知问题。

Solutions Collecting From Web of "ActionBarSherlock + maven + eclipse:在工作区中找不到依赖项"

从Android 0.4.2开始,您现在需要在Eclipse工作区中为m2e-android构buildAndroid库项目,以成功检测它们。 ActionBarSherlock的POM可以在这里find:

https://github.com/JakeWharton/ActionBarSherlock/blob/master/library/pom.xml#

注意: m2e-android是beta软件,因此可能会影响function的更改可能会在发行版之间发生。

对于那些不知道“MAVENIZED”是什么意思的人来说就是把一个简单的项目转换成一个Maven项目。

在Eclipse中,右键单击您的项目,configuration – >转换为Maven项目

只有在通过configuration文件使用eclipse时,才可以将actionbarsherlock依赖项包含为jar文件

 <profile> <id>m2e</id> <activation> <property><name>m2e.version</name></property> </activation> <dependencies> <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>actionbarsherlock</artifactId> <version>${abs.version}</version> <type>jar</type> </dependency> </dependencies> </profile> 

而且不需要在eclipse中包含整个actionbarsherlock作为项目

把它作为一个依赖添加到你的父pom.xml文件中:

 <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>actionbarsherlock</artifactId> <type>apklib</type> <version>4.2.0</version> </dependency> 

和下面几行到您的项目pom.xml中:

 <dependency> <groupId>com.actionbarsherlock</groupId> <artifactId>actionbarsherlock</artifactId> <version>4.2.0</version> </dependency> 

我已经写了关于mvn + eclipse +操作栏sherlock集成的详细教程http://v.zasadnyy.com/blog/abs-maven-eclipse-integration/

希望这会有帮助。