2012-08-16 156 views
3

這是我的庫項目中的pom.xml。 我做「mvn乾淨安裝」,一切都OK。在我當地的m2回購中,我有apklib神器。android-maven-plugin和庫項目

<?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> 
    <artifactId>actionbar</artifactId> 
    <groupId>com.markupartist.android</groupId> 
    <name>android-actionbar</name> 
    <packaging>apklib</packaging> 
    <version>1.0</version> 


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

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>${platform.version}</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 


    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>android-maven-plugin</artifactId> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <version>3.3.0</version> 
       <configuration> 
        <sdk> 
         <path> 
          e:\Program Files\Android\android-sdk\ 
         </path> 
        </sdk> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <groupId>org.apache.maven.plugins</groupId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </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> 
    <groupId>com.main.app</groupId> 
    <artifactId>VirtualRecruiter</artifactId> 
    <version>1.0</version> 
    <packaging>apk</packaging> 
    <name>MainApp</name> 

    <properties> 
     <platform.version>2.2.1</platform.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>${platform.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.roboguice</groupId> 
      <artifactId>roboguice</artifactId> 
      <version>2.0</version> 
     </dependency> 
     <dependency> 
      <groupId>actionbar</groupId> 
      <artifactId>com.markupartist.android</artifactId> 
      <version>1.0</version> 
      <type>apklib</type> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.3.0</version> 
       <configuration> 
        <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile> 
        <assetsDirectory>${project.basedir}/assets</assetsDirectory> 
        <resourceDirectory>${project.basedir}/res</resourceDirectory> 
        <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory> 
        <sdk> 
         <path> 
          e:\Program Files\Android\android-sdk\ 
         </path> 
        </sdk> 
        <undeployBeforeDeploy>true</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 

      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

的IntelliJ可以看到我的depedency很好,但是當我運行主項目「MVN乾淨編譯」,我有: ˚F

ailed執行項目MainApp目標:無法解析 依賴項目 com.main.app:MainApp:apk:1.0:找不到 神器動作條:artist.android:apklib:1.0

當我使用「SY stemPath'並使用硬編碼路徑到我的工件,依賴可以通過maven找到,但我有編譯錯誤,並且javac沒有看到庫項目中的任何類。

回答

1

關於您發佈的代碼,您犯了一個小錯誤,也許它會解決您的問題。

您已經在您的依賴項上反轉了groupIdartifactId,所以Maven找不到它。

<dependency> 
    <groupId>actionbar</groupId> 
    <artifactId>com.markupartist.android</artifactId> 
    <version>1.0</version> 
    <type>apklib</type> 
</dependency>