什么是 autovalue.shaded 或什么是阴影罐?
What is autovalue.shaded or what is a shaded jar?
我正在寻找一种方法来解析字符串以获取 int,然后偶然发现:
NumberUtils.toInt("blah",99);
我把它输入我的IDE,它自动为我导入了这个:
import autovalue.shaded.org.apache.commons.lang.math.NumberUtils;
所以我很想知道,autovalue.shaded
是关于什么的,为什么是 'shading' org.apache.commons
?
用它来满足我对 NumberUtils
的需求安全吗?
我试过搜索,但我不熟悉搜索结果带来的假设知识,例如 shaded jar 和 uber jar。
"Shading"就是在自己的jar文件中嵌入依赖类的过程。 AutoValue 这样做部分是为了限制瞬时依赖性,同时也是为了确保其依赖性的版本稳定性。
您可以在此处阅读有关着色的更多信息:https://maven.apache.org/plugins/maven-shade-plugin/
我强烈建议不要在代码中使用阴影依赖项,因为这意味着您不再控制依赖项版本。您可以直接添加依赖项,让您控制更新时间。
您可能还想检查您的 gradle 依赖项以确保您的 compile
目标中没有 AutoValue。我从你的其他依赖项中看到这是一个 Android 项目,如果 AutoValue 在 compile
目标上,那么你将拥有一个比你想要的大得多的 APK。它应该通过 apt
包含在注释处理器类路径中,这样它 类 就不会包含在您的最终产品中。 Hugo Visser 有一个很好的 gradle plugin 用于为 Android 个项目启用 apt
目标。
我正在寻找一种方法来解析字符串以获取 int,然后偶然发现:
NumberUtils.toInt("blah",99);
我把它输入我的IDE,它自动为我导入了这个:
import autovalue.shaded.org.apache.commons.lang.math.NumberUtils;
所以我很想知道,autovalue.shaded
是关于什么的,为什么是 'shading' org.apache.commons
?
用它来满足我对 NumberUtils
的需求安全吗?
我试过搜索,但我不熟悉搜索结果带来的假设知识,例如 shaded jar 和 uber jar。
"Shading"就是在自己的jar文件中嵌入依赖类的过程。 AutoValue 这样做部分是为了限制瞬时依赖性,同时也是为了确保其依赖性的版本稳定性。
您可以在此处阅读有关着色的更多信息:https://maven.apache.org/plugins/maven-shade-plugin/
我强烈建议不要在代码中使用阴影依赖项,因为这意味着您不再控制依赖项版本。您可以直接添加依赖项,让您控制更新时间。
您可能还想检查您的 gradle 依赖项以确保您的 compile
目标中没有 AutoValue。我从你的其他依赖项中看到这是一个 Android 项目,如果 AutoValue 在 compile
目标上,那么你将拥有一个比你想要的大得多的 APK。它应该通过 apt
包含在注释处理器类路径中,这样它 类 就不会包含在您的最终产品中。 Hugo Visser 有一个很好的 gradle plugin 用于为 Android 个项目启用 apt
目标。