ActionBarSherlock + maven + eclipse: зависимость не найдена в рабочей области

Я обновил до последней версии ADT Plugin, и я столкнулся с этой проблемой , решил обновить плагин m2e-android eclipse. Теперь я могу скомпилировать свой проект через консоль, но не с eclipse. Это исключение, pom.xml файлом pom.xml в eclipse:

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

В предыдущих версиях ADT / m2e-android я смог без проблем справиться с консолью и затмением.

Кто-нибудь знает, как это решить? Может быть, мой pom.xml ошибочен?

Спасибо за ваше время.


В настоящее время используется:

  • Eclipse classic 3.7.2 (с Juno проблема сохраняется)
  • ADT 20.0.3
  • M2e-андроид 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> при <?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> , <?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> при <?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> , <?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 вам теперь нужно заручиться проектами библиотеки Android в рабочей области Eclipse для m2e-android, чтобы успешно их обнаружить. POM для ActionBarSherlock можно найти здесь:

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

Примечание: m2e-android является бета-программным обеспечением, и поэтому изменения, которые могут повлиять на функциональность, могут возникать между версиями.

Для тех, кто не знает, что означает «MAVENIZED» означает, что он превращает простой проект в проект Maven.

В Eclipse щелкните правой кнопкой мыши в вашем проекте, Настроить -> Преобразовать в проект Maven

Вы можете включить зависимость actionbarsherlock как файл jar только при использовании eclipse через профили

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

И не нужно включать весь actionbarsherlock как проект в eclipse

Добавьте это в родительский файл 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 + action bar sherlock integration http://v.zasadnyy.com/blog/abs-maven-eclipse-integration/

Надеюсь, это будет полезно.