Как скачать jar-файл с pom-файлом в папке gradle? - PullRequest
0 голосов
/ 23 мая 2019

Я добавляю compile 'org.apache.commons:commons-vfs2-project:2.3' в мой файл build.gradle, но обнаружил, что там ~\.gradle\caches\modules-2\files-2.1\org.apache.commons\commons-vfs2-project\2.3\860b837e62ab6d3282e7ff96f63ea21aebcdba40\commons-vfs2-project-2.3.pom, как я могу скачать файл jar?

1 Ответ

1 голос
/ 23 мая 2019

Вот одно из решений.Ниже приведен build.gradle для примера проекта
Я включил 2 плагина и письменный скрипт для включения дополнительных скриптов при сборке jar.
Есть несколько скриптов, сгенерированных затмением, которые я не удалил.

apply plugin: 'java'

/**Following plugins are needed */

apply plugin: 'maven-publish' 
apply plugin: 'maven'

/**Just to include jar versioning*/
version = '1.0.0'

repositories {
    jcenter()
}

dependencies {

    compile 'org.slf4j:slf4j-api:1.7.25'
    testCompile 'junit:junit:4.12'
}




apply plugin: 'eclipse'

eclipse {    
  classpath {
    downloadSources = true // default: true
    downloadJavadoc = true // default: false
  }
} 

def eclipseSourceFolders=[
    'src/main/java',
    'src/main/resources',
    'src/test/java',
    'src/test/resources'
];

tasks.eclipse.dependsOn << {

    for (String sourceFolder: eclipseSourceFolders){ 
        def resourceDir = new File(project.projectDir, sourceFolder)
        if( !resourceDir.exists() && ! resourceDir.mkdirs() ) {
            logger.info("Not able to create %1",resourceDir);
        }
    }
}
/**
Add Following scripts to placs pom.xml within jar and .pom file within libs folder*/

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

/** While creating jar generate and place pom.xml also place .pom file in libs folder */
jar {
    into("META-INF/maven/$project.group/$project.name") {
        from { generatePomFileForMavenJavaPublication }
        rename ".*", "pom.xml"
    }

    doLast {
        pom {
            project {

            }
        }.writeTo("$buildDir/libs/$project.name-${version}.pom")
    }
}
...