【发布时间】:2018-06-04 12:07:07
【问题描述】:
使用我的 build.gradle 文件,我正在使用 createJar 任务创建一个 jar 文件,然后我使用 uploadArchives 任务上传该文件。
该项目很时髦,结构如下: /src/main/groovy/package.name /src/test/groovy
这是一个测试 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")
}
}
}
}
【问题讨论】:
-
您可以将
Jar任务配置应用于java插件(jar)创建的任务,而不是您自己创建的任务(createJar)。 -
@lu 感谢您的回复,但我不确定我是否理解
-
我添加了一个带有示例的答案。