使用Gradle Witness插件和java-library

时间:2018-02-25 17:23:58

标签: java maven gradle

很长一段时间我使用Gradle和java插件,Gradle Witness来验证Maven依赖。 e.g:

apply plugin: 'java'
apply plugin: 'witness'

dependencies {
    compile "io.netty:netty-all:4.0.30.Final"
}

dependencyVerification {
    verify = [
        'io.netty:netty-all:1578cbb1354f02951c6ce5d374962e703afb882321164db9e3a2cfb141a1ebeb'
    ]
}

我现在想切换到java-library插件,但它似乎与Witness不兼容。构建失败,并显示以下错误:No dependency for integrity assertion found: io.netty:netty-all

apply plugin: 'java-library'
apply plugin: 'witness'

dependencies {
    implementation "io.netty:netty-all:4.0.30.Final"
}

dependencyVerification {
    verify = [
        'io.netty:netty-all:1578cbb1354f02951c6ce5d374962e703afb882321164db9e3a2cfb141a1ebeb'
    ]
}

我所从事的项目是安全敏感的,我们需要能够验证依赖项的确切校验和(而不仅仅是PGP签名)。

有没有办法帮助Witness解决问题或使用具有相同功能的其他插件?不幸的是见证hasn't been updated since 2014并且似​​乎没有维护。

1 个答案:

答案 0 :(得分:0)

checksum-dependency-plugin应该涵盖所有情况。

示例集成:https://github.com/trezor/trezor-android/pull/53

主要功能:

  1. 插件本身不会尝试播放/解析配置。它应该透明地支持所有任务和其他Gradle插件。
  2. 插件的校验和(!)也已验证。换句话说,坏罐子中的类文件永远不会开始执行。
  3. 该插件添加了一个任务allDependencies,基本上是Gradle的默认dependencies任务,已添加到所有项目中。
  4. 该插件生成rootDir/build/checksum/checksum.xml文件(因此您可以对其进行查看)。最重要的是,您可以添加-PchecksumUpdate来更新校验和/ PGP密钥。
  5. PGP signatures verification