2016-09-14 6 views
2

個人的なアーティファクトリポジトリにアーティファクトを公開しようとすると、 リポジトリを見ると、公開されているpomにプロジェクトの依存関係が含まれていないことがわかります。 あなたは私のビルドに何が間違っているか説明してください?gradle publishにpomの依存関係が含まれていない

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     // Add this line 
     classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.1" 
    } 
} 



// Apply the java plugin to add support for Java 
apply plugin: 'java' 
apply plugin: 'com.jfrog.artifactory' 
apply plugin: 'maven-publish' 
apply plugin: 'maven' 
group 'CaptchaSolving' 
version '1.0.0' 



sourceCompatibility = 1.5 

// In this section you declare where to find the dependencies of your project 
repositories { 
    // Use 'jcenter' for resolving your dependencies. 
    // You can declare any Maven/Ivy/file repository here. 
    jcenter() 
    maven { 
     url 'https://artifactory.lyoko.pw:443/libs-release-local' 
     credentials { 
      username = "${artifactory_username}" 
      password = "${artifactory_password}" 
     } 
    } 
} 



sourceSets { 
    main { 
     java { 
      srcDir 'src/' 
     } 
    } 
} 






// In this section you declare the dependencies for your production and test code 
dependencies { 
    compile(group: 'com.pragone.custom', name: 'jpHash', version: '1.0.1') 
} 



task assembleRelease(type: Jar, dependsOn:classes) { 
    classifier = 'release' 
    manifest { 
     attributes 'Implementation-Title': project.group, 
       'Implementation-Version': version, 
       'Main-Class': '' 
    } 
    baseName = project.name 
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
    with jar 


} 



artifacts { 
    archives assembleRelease 
} 

def libraryGroupId = group 
def libraryArtifactId = rootProject.name 
def libraryVersion = version 
publishing { 
    publications { 
     jar(MavenPublication) { 
      groupId libraryGroupId 
      version libraryVersion 
      artifactId libraryArtifactId 
      artifact("$buildDir/libs/${artifactId}-${libraryVersion}.jar") 

     } 
    } 
} 

artifactory { 
    contextUrl = 'https://artifactory.lyoko.pw' 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 

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

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

あなたが見ることができるように、一つだけの依存関係があり、

と発表されますPOMは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>CaptchaSolving</groupId> 
    <artifactId>CaptchaSolving</artifactId> 
    <version>1.0.0</version> 
</project> 
(artifactoryのビュー]タブから取得)

することができますように を参照してください。指定したリポジトリがありません。

私は結果として得られるpomに、このプロジェクトが依存するリポジトリと依存関係を含めるだけです。

+1

私は 'classpath'範囲に精通していませんよ。あなたは 'コンパイル'を意味しましたか? – chrylis

+0

いいえ、それは人工物の例から直接です。コンパイルワードの下位の依存関係を見てください。つまり、最後のpomに含めることを試みていることです。 –

答えて

2

私はthis postを見て、いくつかのことを試して問題を解決することができました。

ブロックを表示されます。

publishing { 
    publications { 
     jar(MavenPublication) { 
      groupId libraryGroupId 
      version libraryVersion 
      artifactId libraryArtifactId 
      artifact("$buildDir/libs/${artifactId}-${libraryVersion}.jar") 

     } 
    } 
} 

は行方不明になった:

from components.java 

を最終的な解決策がある:

publishing { 
    publications { 
     jar(MavenPublication) { 
      from components.java 
      groupId libraryGroupId 
      version libraryVersion 
      artifactId libraryArtifactId 
      artifact("$buildDir/libs/${artifactId}-${libraryVersion}.jar") 

     } 
    } 
} 
関連する問題