簡體   English   中英

如何將現有的第三方JAR集合上傳到Gradle中的Maven服務器?

[英]How to upload an existing collection of 3rd-party Jars to a Maven server in Gradle?

如何將現有Jars的集合上載到Maven存儲庫? Jars是從導入到Gradle的ANT任務構建的,並用作我的任務的依賴... ... Jars沒有版本標記,所以他們應該在上傳時收到相同的版本號...

apply plugin: 'java'
apply plugin: 'maven' 

version = "6.1.1"
group = "com.oahu" 

ant.importBuild "$projectDir/tools/ant/package.xml" 

uploadArchives(dependsOn: ["oahu-jar", "client-sdk-jar", "common-jar"]) << { 
    // the dependencies will generate "oahu.jar", "oahu_client_sdk.jar", "common.jar" 

    // UPLOAD THE DEPENDENCIES LISTED ABOVE LOCATED AT the subdirectory "build/" 

    description = "Uploads the generated jar ${archivesBaseName}-${version}.jar to ${cn_mvn_serverUrl}" 
    repositories.mavenDeployer { 
       repository(url: "${cn_mvn_releaseUrl}") { 
          authentication(userName: "${cn_mvn_username}", password: "${cn_mvn_password}") 
       } 
    } 
}

任務“oahu-jar”,“client-sdk-jar”,“common-jar”是從ANT導入的...我有Maven存儲庫配置已經在另一個項目中工作......但是Maven插件上傳了Jar插件從Jar插件生成Jar ...考慮導入的ANT任務生成:

  • 的build.gradle
  • SRC
  • build | - “oahu.jar”| - “oahu_client_sdk.jar”| - “common.jar”

結果應該是使用給定版本上傳那些Jars ...

“oahu-6.1.1.jar”,“oahu_client_sdk-6.1.1.jar”,“common-6.1.1.jar”......全部上傳到Maven存儲庫......

添加sourceSet? 組態? 文物?

目前gradle沒有明確支持,所以你必須為此做一些腳本。 根據上面的代碼段,我創建了一個示例代碼段,應該很容易適應:

apply plugin:'java'
apply plugin:'maven'

import org.gradle.api.internal.artifacts.publish.DefaultPublishArtifact

version = "6.1.1"
group = "com.oahu" 

ant.importBuild "$projectDir/tools/ant/package.xml" 

// a list of the ant tasks that create a jar
// I assumed the following convention:
// ant task named "SampleAntJar-jar" creates the jar  "build/SampleAntJar.jar" 
def antJarTasks = ["SampleAntJar-jar", "SecondSampleAntJar-jar"]

artifacts{
    //for each ant task add a defaultpublishArtifact to the archives configuration
    antJarTasks.each{ taskName ->
        def artifactName = taskName - '-jar'
        archives new DefaultPublishArtifact(artifactName, "jar", "jar", null, new            
                       Date(), new File("$buildDir", "${artifactName}.jar"))    
    }
}

uploadArchives(){
    dependsOn: antJarTasks 
    repositories {
        mavenDeployer {
            repository(url: "file://{'/Users/Rene/.m2/repository/'}")
            antJarTasks.each{ antJarTask ->
                antJarName = antJarTask - "-jar"
                addFilter(antJarName) {artifact, file ->
                    artifact.name == antJarName
                }
                pom(antJarName).artifactId = antJarName
            }
        }
    }
}

問候,René

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM