首頁>技術>

具體的錯誤提示資訊如下:

The key ID must be in a valid form (eg 00B5050F or 0x00B5050F), given value: 1E5CBEF8B550FB7D

gralde-error-011202×276 13.6 KB

問題和解決

這個問題比較蠢。與 Gradle 的外掛 id ‘signing’ 有關。

可以反問原始碼:https://github.com/gradle/gradle/blob/124712713a77a6813e112ae1b68f248deca6a816/subprojects/security/src/main/java/org/gradle/plugins/signing/signatory/pgp/PgpKeyId.java

在這個原始碼中有一個對 Key 校驗的方法:

private static String normaliseKeyId(String keyId) {        String keyIdUpped = keyId.toUpperCase();        switch (keyIdUpped.length()) {            case 10:                if (!keyIdUpped.startsWith("0X")) {                    throw new IllegalArgumentException("10 character key IDs must start with 0x (given value: " + keyId + ")");                }                return keyIdUpped.substring(2);            case 8:                if (keyId.startsWith("0X")) {                    throw new IllegalArgumentException("8 character key IDs must not start with 0x (given value: " + keyId + ")");                }                return keyIdUpped;            default:                throw new IllegalStateException("The key ID must be in a valid form (eg 00B5050F or 0x00B5050F), given value: " + keyId);        }    }

從這個方法中,你可以看到如果你的 Key ID 是 10 位的,你需要使用 0X 開頭。

如果你的 key ID 超過 10 位就直接報錯了。

在 Kleopatra 中,預設給了 16位的 Key Id,如果你直接複製的話,只會報錯。

因此,根據上面的問題:

signing.keyId=

引數應該只能保留 8 位置。

因此

signing.keyId=

的配置應該為:

signing.keyId=B550FB7D

透過上面的調整後再進行編譯,你應該不會遇到上面錯誤問題。

22
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • leader選舉過程