2013-09-04 7 views
0

Я создаю проект библиотеки и packing как apklib. В приложении я добавил depedency:ошибка компиляции при использовании maven apklib

<dependency> 
    <groupId>com.ati</groupId> 
    <artifactId>common-lib</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <type>apklib</type> 
</dependency> 

Я использую LIB в моем приложении проекта, как: com.ati.common_lib.Test.demo(); и использовать mvn clean install. Это сработало! Но если я использую import com.ati.common_lib; и Test.demo(); и mvn clean build это бросить ошибку

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project soci-news: Compilation failure: Compilation failure: 
[ERROR] /Data/Work/workspace/soci-parent/soci-news/src/main/java/com/ati/soci_news/HelloAndroidActivity.java:[9,15] cannot find symbol 
[ERROR] symbol : class common_lib 
[ERROR] location: package com.ati 
[ERROR] /Data/Work/workspace/soci-parent/soci-news/src/main/java/com/ati/soci_news/HelloAndroidActivity.java:[23,9] cannot find symbol 
[ERROR] symbol : variable Test 
[ERROR] location: class com.ati.soci_news.HelloAndroidActivity 
[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 :soci-news 

Я использую Maven 3.0.5, затмение «версия Кеплер» с М2Э-андроида. Библиотека и приложение, созданные мной m2e-android. Что я здесь делаю неправильно?

UPDATE

Мой родительский 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.ati</groupId> 
    <artifactId>soci-parent</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>Soci project parent</name> 

    <modules> 
     <module>common-lib</module> 
     <module>soci-news</module> 
    </modules> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.google.android</groupId> 
       <artifactId>android</artifactId> 
       <version>2.2.1</version> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <pluginManagement> 
      <plugins> 
       <plugin> 
        <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
        <artifactId>android-maven-plugin</artifactId> 
        <version>3.6.1</version> 
        <configuration> 
         <sdk> 
          <platform>8</platform> 
         </sdk> 
         <undeployBeforeDeploy>true</undeployBeforeDeploy> 
        </configuration> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</project> 

Моя библиотека 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> 

    <parent> 
     <groupId>com.ati</groupId> 
     <artifactId>soci-parent</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 

    <groupId>com.ati</groupId> 
    <artifactId>common-lib</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>apklib</packaging> 
    <name>common lib for ati android application</name> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <platform.version> 2.2.1 
     </platform.version> 
     <android.plugin.version>3.6.1</android.plugin.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <extensions>true</extensions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

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> 
    <parent> 
     <groupId>com.ati</groupId> 
     <artifactId>soci-parent</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <groupId>com.ati</groupId> 
    <artifactId>soci-news</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>apk</packaging> 
    <name>soci-news</name> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>com.ati</groupId> 
      <artifactId>common-lib</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>apklib</type> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <extensions>true</extensions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

Можем ли мы видеть все ваши POM? – alex

+0

Ваша HelloAndroidActivity не найдена. Убедитесь, что, если вы используете это, вы можете использовать это. –

+0

@alex: Я обновил свой вопрос. – hieuxit

ответ

1

Ваш импорт поврежден.

com.ati.common-lib это пакет, но вы действительно хотите импортировать содержимое этого пакета, com.ati.common-lib.* для всего и com.ati.common-lib.Test только для класса Test.

+0

Я пытаюсь использовать mvn clean package и mvn clean install в каждом проекте maven (проект lib, проект приложения и родительский проект), но не повезло. Ошибка компиляции при использовании в родительском проекте или проекте приложения. Я действительно не понимаю вашего ума, поэтому мне интересно, эта ошибка может быть исправлена ​​или нет? – hieuxit

+0

Можете ли вы попробовать импортировать com.ati.common_lib. *; или импортировать com.ati.common_lib.Test; – alex

+0

OK !!! Это сработало, очень странно :)). Большое спасибо. Если вы не возражаете, могу ли я задать вам другой вопрос: на этой картинке http://imgur.com/5lvgPkq - это редактор файлов eclipse. Eclipse не распознает R-файл, тестовый класс ... и т. Д., И в конце он не показывает мне предложения кода, поскольку я обычно использую обычный проект андроида с отсутствием maven. Ты знаешь почему? и как его исправить? Извините за этот детский вопрос, потому что я новичок в maven. Большое спасибо. – hieuxit