2014-11-05 15 views
2

我的Android項目結構(MyApp的就是Android Studio項目的模塊):同時上傳項目JAR和exernal罐子裏的本地倉庫

MyApp 
    - external/ 
     mylib.jar 
    - src/ 
    - res/ 
    ... 
    build.gradle 

我首先有一個外部的罐子,我想將它上傳到我的本地maven回購,我的gradle構建看起來像這樣:

configurations { 
    externalJar 
} 

artifacts { 

    externalJar file: file('external/mylib.jar') 
    artifact = 'exernalLib' 
    version = '1.1.0' 
} 

uploadExternalJar { 
    repositories { 
     mavenDeployer { 
      repository(url: "file://${System.properties['user.home']}/.m2/repository") 
     } 
    } 
} 

它的工作原理!

然後,我也想上傳我的項目jar神器到本地maven回購。我添加以下代碼:

group = 'com.my.app' 
uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "file://${System.properties['user.home']}/.m2/repository") 
      pom.project { 
       version '1.2.1' 
       artifactId 'MyApp' 
       packaging 'jar' 
      } 

     } 
    } 
} 

當我運行./gradlew build,兩個任務都執行,但是當我檢查本地Maven MyApp的-1.2.1.jar,其內容是由外部的lib罐子推翻。

我不知道我做錯了什麼。但是,我怎樣才能將我的項目jar的外部jar &上傳到本地maven呢?

回答

0

我不確定,但我可以嘗試猜出剛剛發生的事情。 根據gradle這個規範任務uploadArchives {...}的類型是:(type: Upload)

所以讓我們去上傳規範,你怎麼樣了:

屬性:

  • 文物
  • 配置
  • uploadDescriptor

,我想你有:

configurations { 
    externalJar 
} 

的uploadArchives全球配置上面,所以uploadArchives採取的externalJar作爲配置MyApp的-1.2.1.jar。

也許嘗試在空格內添加空confirguration{}uploadArchives {}