2016-05-26 96 views
1

我試圖發佈一個Android庫到本地JFrog Artifactory。目前,我有這樣的:包括在Android庫生成的POM中的依賴關係

apply plugin: 'com.jfrog.artifactory' 
apply plugin: 'maven-publish' 
apply plugin: 'com.android.library' 

publishing { 
    publications { 
     aar(MavenPublication) { 
      groupId libraryGroupId 
      version libraryVersion 
      artifactId libraryArtifactId 

      artifact("$buildDir/outputs/aar/app-beta-debug.aar") 
     } 
    } 
} 

artifactory { 
    contextUrl = 'http://localhost:8081/artifactory' 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 

      username = artifactory_username 
      password = artifactory_password 
     } 
     defaults { 
      publications('aar') 
      publishArtifacts = true 

      properties = ['qa.level': 'basic', 'q.os': 'android', 'dev.team': 'core'] 
      publishPom = true 
     } 
    } 
} 

我跳過了像Android這樣一些地方和依賴關係部分的簡潔。 build.gradle有多個編譯依賴關係。

gradle artifactoryPublish 

將Artifact發佈到Artifactory,但生成的pom不具有傳遞依賴性。我發現這個答案:https://stackoverflow.com/a/30523571/2829308

從這個答案,pom.withXml工作(雖然我想不出如何排除依賴)。但這看起來很駭人。我覺得應該有更好的方式。我嘗試使用uploadArchives方式如下

​​

它說,任務成功,但神器不會被髮表在Artifactory的。我錯過了明顯的東西嗎?我該如何解決?

回答

0

Pom文件不應包含傳遞依賴關係,只能包含直接依賴關係。 Maven解析pom文件以查找直接依賴關係,下載它們並以遞歸方式從那裏繼續。

您應該在您的pom文件中看到的唯一依賴項是在您的gradle腳本的dependences塊中聲明的唯一依賴項。

+0

我想這就是他的意思。圖書館項目有依賴關係,他們不包括在他的pom中。我有同樣的問題,除非我這樣做。 – CaptRespect