繁体   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