gpt4 book ai didi

android - 什么是 autovalue.shaded 或者什么是 shaded jar?

转载 作者:行者123 更新时间:2023-11-29 01:22:56 30 4
gpt4 key购买 nike

我正在寻找一种方法来解析字符串以获取 int,然后偶然发现:

NumberUtils.toInt("blah",99);

我将它输入到我的 IDE 中,它会自动为我导入它:

import autovalue.shaded.org.apache.commons.lang.math.NumberUtils;

所以我很想知道,autovalue.shaded 是关于什么的,为什么它是“阴影”org.apache.commons

使用它来满足我对 NumberUtils 的需求是否安全?

我尝试过搜索,但我不熟悉搜索结果中出现的假设知识,例如 shaded jar 和 uber jar。

enter image description here

最佳答案

“着色”是在您自己的 jar 文件中嵌入依赖类的过程。 AutoValue 这样做部分是为了限制瞬时依赖性,同时也是为了确保其依赖性的版本稳定性。

您可以在此处阅读有关着色的更多信息:https://maven.apache.org/plugins/maven-shade-plugin/

我强烈建议不要在代码中使用阴影依赖项,因为这意味着您不再能够控制依赖项版本。您可以简单地直接添加依赖项,从而控制它何时更新。

您可能还想检查您的 gradle 依赖项,以确保您的 compile 目标中没有 AutoValue。我从你的其他依赖项中看到这是一个 Android 项目,如果 AutoValue 在 compile 目标上,那么你将拥有一个比你想要的大得多的 APK。它应该通过 apt 包含在 Annotation Processor 类路径中,这样它的类就不会包含在您的最终产品中。 Hugo Visser 有一个很好的gradle plugin为 Android 项目启用 apt 目标。

关于android - 什么是 autovalue.shaded 或者什么是 shaded jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35709293/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com