2016-05-26 12 views
1

私はAndroidライブラリをローカルJFrog Artifactoryに公開しようとしています。私はアンドロイドのようないくつかの部分をスキップし、簡潔にするためにセクションの依存関係しているアンドロイドライブラリの生成された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 
     } 
    } 
} 

:現在、私はこれを持っています。 build.gradleには複数のコンパイル依存関係があります。

gradle artifactoryPublish 

投稿されたアーティファクトはArtifactoryですが、生成されたpomには推移的な依存関係はありません。私はこの答えを見つけました:https://stackoverflow.com/a/30523571/2829308

この回答からは、pom.withXmlが働いていました(依存関係を除外する方法はわかりませんでしたが)。しかし、これはハッキリしているようです。より良い方法があるはずです。

​​

を次のように私は成功したタスク言うが、アーティファクトがArtifactoryで公開されませんuploadArchives方法を使用してみました。私は明白な何かを欠いていますかこれをどうやって解決するのですか?

答えて

0

Pomファイルには推移的な依存関係が含まれてはならず、直接的な依存関係のみが含まれているべきです。 Mavenは、pomファイルを解析して直接の依存関係を見つけ出し、それらをダウンロードし、そこから再帰的に続行します。

pomファイルに表示される唯一の依存関係は、gradleスクリプトのdependencesブロックで宣言されている依存関係です。

+0

彼が言っていることだと思います。ライブラリプロジェクトには依存関係があり、それらは自分のpomには含まれません。私はそのハックをしない限り、私は同じ問題を抱えています。 – CaptRespect

関連する問題