2014-01-14 4 views
0

Maven으로 변환하려는 여러 Android 라이브러리 프로젝트가 있습니다.외부 apklib에 따라 Eclipse 컴파일 오류가 발생했습니다.

mvn 새로 설치이 성공적이지만 Eclipse에서 project2 apklib의 클래스가 project1의 클래스 경로에없는 것처럼 가져 오는 문제가 있습니다.

첫 번째 프로젝트의 pom.xml

<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> 
<artifactId>android-clientsdk</artifactId> 
<packaging>apklib</packaging> 

<parent> 
    <groupId>com.company.client</groupId> 
    <artifactId>company-parent</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <artifactId>maven-source-plugin</artifactId> 
      <configuration> 
       <attach>true</attach> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <sdk> 
        <path>${android.sdk.path}</path> 
        <platform>${android.sdk.platform}</platform> 
       </sdk> 
       <!-- <deleteConflictingFiles>true</deleteConflictingFiles> --> 
      </configuration> 
     </plugin> 
    </plugins> 
    <pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings 
       only. It has no influence on the Maven build itself. --> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
            <artifactId>android-maven-plugin</artifactId> 
            <versionRange>[3.7.0,)</versionRange> 
            <goals> 
             <goal>generate-sources</goal> 
             <goal>consume-aar</goal> 
             <goal>proguard</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore /> 
           </action> 
          </pluginExecution> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-dependency-plugin</artifactId> 
            <versionRange>[2.1,)</versionRange> 
            <goals> 
             <goal>copy-dependencies</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore /> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

<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> 
<artifactId>android-clientelement</artifactId> 
<packaging>apklib</packaging> 

<parent> 
    <groupId>com.company.client</groupId> 
    <artifactId>company-parent</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
</parent> 

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <artifactId>maven-source-plugin</artifactId> 
      <configuration> 
       <attach>true</attach> 
      </configuration> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>jar</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
      <artifactId>android-maven-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <sdk> 
        <path>${android.sdk.path}</path> 
        <platform>${android.sdk.platform}</platform> 
       </sdk> 
       <!-- <deleteConflictingFiles>true</deleteConflictingFiles> --> 
      </configuration> 
     </plugin> 
    </plugins> 
    <pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings 
       only. It has no influence on the Maven build itself. --> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
            <artifactId>android-maven-plugin</artifactId> 
            <versionRange>[3.7.0,)</versionRange> 
            <goals> 
             <goal>generate-sources</goal> 
             <goal>consume-aar</goal> 
             <goal>proguard</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore /> 
           </action> 
          </pluginExecution> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-dependency-plugin</artifactId> 
            <versionRange>[2.1,)</versionRange> 
            <goals> 
             <goal>copy-dependencies</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <ignore /> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 
<dependencies> 
    <dependency> 
     <groupId>com.google.android</groupId> 
     <artifactId>android</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.company.client</groupId> 
     <artifactId>android-clientsdk</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <type>apklib</type> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-annotations</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
</dependencies> 

기술의 : 이클립스 케플러을 사용하고

  • . 나는 (일식 시장에서 촬영) M2E의 최신 안드로이드 구성 관리자를 사용하고

내 질문 :

  1. apklib에 따라 때 우리는 (이클립스에서이 의존성에 대한 증거를 볼 수 이 라이브러리에서 컴파일 된 .class와 같은)?
  2. Eclipse가 종속 된 apklib의 패키지에서 가져 오기를 찾을 수없는 이유는 무엇입니까?
+0

나는 이클립스에서 모든 일이 잘 보입니다 (가져 오기 등 해결할 수있는 동안 -> 프로젝트 속성 이동 -> android -> lib를 추가하고 동일한 작업 공간에서 lib가 Eclipse에서 열려 있는지 확인하십시오. 생성 된 apk에는 apklib 내용이 포함되어 있지 않습니다 ........... – user1050755

답변

0

당신은 당신의 Eclipse 작업 공간에 APKlib를 가져온 다음 클린을 수행하는 경우,

때로는 주 응용 프로그램 프로젝트 (프로젝트 속성> 안드로이드> 라이브러리 추가를 선택하여 APKLib 프로젝트)를 연결하거나해야한다 귀하의 메이븐 프로젝트의 업데이 트가 이클립스 apklib의 링크를 잃고 다시 추가해야합니다 ..

+0

이 솔루션을 시도했지만 문제가 해결되지 않았습니다. APKLib가 Maven 프로젝트이고 표준 Android 파일 구조가 아니기 때문일 수 있습니다. (bin에는 클래스가 포함되지 않습니다). – Ika

+0

APKlib가 작업 공간에서 Maven 및 Android 프로젝트로 인식되지 않습니까? 필자의 경우, 내 POM 파일에 내 APKLib 모듈을 추가했습니다. 추가 할 수 있습니까? –

+0

APKLib는 내 POM.xml에 종속되어있을뿐만 아니라 Maven이 mvn clean install을 사용하여이 프로젝트를 성공적으로 빌드합니다. 그러나 Eclipse에서 코드를 작성하려고 할 때 가져 오기가 실패하는 것을 볼 수 있습니다. Eclipse에서 APKLib의 클래스를 사용할 수 있습니까? – Ika