Как загрузить существующую коллекцию Jar-файлов сторонних производителей на сервер Maven в Gradle? - PullRequest
4 голосов
/ 19 октября 2011

Как я могу загрузить коллекцию существующих Jar-файлов в репозиторий Maven? Банки создаются из задачи ANT, импортированной в Gradle, и используются в качестве зависимости от моей задачи ... Банки не имеют тега версии, поэтому они должны ВСЕ получать одинаковый номер версии при загрузке ...

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, из плагина Java ... Учитывая, что импортированные задачи ANT генерируют:

  • build.gradle
  • 1009 * ЦСИ *
  • сборка | - "oahu.jar" | - "oahu_client_sdk.jar" | - "common.jar"

Результатом этого должна стать загрузка этих файлов с заданной версией ...

"oahu-6.1.1.jar", "oahu_client_sdk-6.1.1.jar", "common-6.1.1.jar" ... все загружено в репозиторий Maven ...

Добавить исходные наборы? Конфигурация? Артефакты?

1 Ответ

4 голосов
/ 10 ноября 2011

в настоящее время это явно не поддерживается 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
            }
        }
    }
}

привет, Рене

...