无法使Gradle签名插件与子项目一起使用

吉姆·Showalter

对于单个项目,效果很好。但是对于子项目,它要么签名但不发布,要么发布但不签名。

Gradle org似乎没有任何官方文档显示签名子项目的示例,而且他们似乎并没有使用签名插件(这很可惜,因为Gradle源代码有100多个子项目,将是一个很好的例子)。

问题的要点在于,尝试在所有项目或子项目中添加签名任务会导致Cannot add task 'signArchives' as a task with that name already exists.,但任何通过其他方式进行签名的尝试(例如,将其移至包含文件,然后从该文件中调用apply-from每个项目)删除签名/发布任务。

当应用于所有项目或子项目时,其他插件/任务(例如jacoco)也可以正常工作。这似乎是特定于签名插件的。它甚至可能是签名插件中的错误(它的命名空间不是每个都适用于要应用它的项目吗?)。我会选择一个可行的解决方法。

谷歌搜索答案只能找到另一个遇到此问题的人,这就是我得到包含文件解决方案的地方,只是它删除了发布任务。

我尝试过的事情在github,gradle Issue 13419中有详细记录。到目前为止,还没有任何响应。

普拉萨杜

下面是正在工作的build.xml。

allprojects {
    apply plugin:  'java'
    apply plugin:  'maven-publish'
    apply plugin:  'signing'

    repositories {
        mavenCentral()
    }

    dependencies {
        testImplementation group: 'junit', name: 'junit', version: '4.12'
    }

    signing {
        sign configurations.archives
    }

    build.dependsOn signArchives
}

group 'com.tssp'
version '1.0-SNAPSHOT'

dependencies {
    implementation(project(':sub1'))
    implementation(project(':sub2'))
}

settings.gradle

rootProject.name = 'tSignSubPrj'
include 'sub1'
include 'sub2'

运行日志,显示子项目的signArchives

14:30:39: Executing task 'build --dry-run'...

:sub1:compileJava SKIPPED
:sub1:processResources SKIPPED
:sub1:classes SKIPPED
:sub1:jar SKIPPED
:sub2:compileJava SKIPPED
:sub2:processResources SKIPPED
:sub2:classes SKIPPED
:sub2:jar SKIPPED
:compileJava SKIPPED
:processResources SKIPPED
:classes SKIPPED
:jar SKIPPED
:signArchives SKIPPED
:assemble SKIPPED
:compileTestJava SKIPPED
:processTestResources SKIPPED
:testClasses SKIPPED
:test SKIPPED
:check SKIPPED
:build SKIPPED
:sub1:signArchives SKIPPED
:sub1:assemble SKIPPED
:sub1:compileTestJava SKIPPED
:sub1:processTestResources SKIPPED
:sub1:testClasses SKIPPED
:sub1:test SKIPPED
:sub1:check SKIPPED
:sub1:build SKIPPED
:sub2:signArchives SKIPPED
:sub2:assemble SKIPPED
:sub2:compileTestJava SKIPPED
:sub2:processTestResources SKIPPED
:sub2:testClasses SKIPPED
:sub2:test SKIPPED
:sub2:check SKIPPED
:sub2:build SKIPPED

BUILD SUCCESSFUL in 59ms
14:30:39: Task execution finished 'build --dry-run'.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章