Gradle - uploadArchives生成的快照与createJar不同

时间:2018-06-04 12:07:07

标签: gradle groovy

使用我的build.gradle文件,我使用createJar任务创建一个jar文件,稍后我使用uploadArchives任务上传该文件。

这个项目很时髦,结构如下: /src/main/groovy/package.name / SRC /测试/常规

这是一个测试jar文件,其中主类位于/ src / test / groovy中,它用于处理来自/src/main/groovy/package.name的类

createJar任务可以正常工作并创建我需要的jar。

到目前为止一切顺利。

问题是当我运行uploadArchives时,它生成一个snapshot.jar,它只包含来自/src/main/groovy/package.name的类

为什么2个jar文件不同?

如何让uploadArchives从createJar上传jar(或者至少包括测试类,并使用createJar中指定的主类运行它)?

在build.gradle中我有类似的东西:

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

sourceCompatibility = 1.5

repositories {
    mavenCentral()
}

artifacts {
    archives file: file('./build/libs/name-'+version+'.jar'), name: 'name', type: 'jar'
}

task createJar(type: Jar) {
    classifier 'test'
    from sourceSets.test.output

    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File',
                   'Implementation-Version': version,
                   'Main-Class': 'MainClassName'
    }
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://url/snapshotsFolder/") {
                authentication(userName: "user", password: "pass")
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

为了扩展我的评论,让我添加一个例子:

jar {
    classifier 'test' 
    from sourceSets.test.output
    manifest { 
        attributes 'Implementation-Title': 'Gradle Jar File', 'Implementation-Version': version, 'Main-Class': 'MainClassName'
    }
}

这将配置由jar插件创建的Jar类型的任务java