我想在我的项目中找到未使用的依赖项。Gradle中是否有类似Maven的功能?
8fq7wneg1#
我为Kotlin用户添加了2种类型的配置。
plugins { id("com.faire.gradle.analyze") version "1.0.9" }
使用旧版插件应用程序:
buildscript { repositories { maven { url = uri("https://plugins.gradle.org/m2/") } } dependencies { classpath("com.faire.gradle:gradle-kotlin-buildozer:1.0.9") } } apply(plugin = "com.faire.gradle.analyze")
资源链接:
4.0.0 version
"gradle-lint-plugin"
"nebula-lint-plugin"
在2016年5月Gradle实施了Gradle lint plugin,用于查找和移除不需要的依赖项第1001章:Gradle Lint插件是一款可插拔且可配置的linter工具,用于识别和报告Gradle脚本和相关文件中的误用或弃用模式。这个插件有各种各样的规则。Unused Dependency Rule是其中之一。它有三个具体的特点。1.移除未使用的相依性。1.将代码直接使用的可传递依赖项提升为显式一阶依赖项。1.将依赖关系重新定位到“正确”配置。要应用规则,请添加:
gradleLint.rules += 'unused-dependency'
最后给出了Unused Dependency Rule的详细设计。
要应用Gradle lint插件,请执行以下操作:
buildscript { repositories { jcenter() } } plugins { id 'nebula.lint' version '0.30.2' }
或者:
buildscript { repositories { jcenter() } dependencies { classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release' } } apply plugin: 'nebula.lint'
定义要对其执行lint的规则:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
对于企业级构建,我们建议在init.gradle脚本或通过Gradle apply from机制包含的Gradle脚本中定义lint规则。对于多模块项目,我们建议在allprojects块中应用插件:
allprojects
allprojects { apply plugin: 'nebula.lint' gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like }
要应用规则,请添加:
该规则检查从项目的源代码集中发出的已编译二进制文件,以查找类引用,并将这些引用与您在依赖项块中声明的依赖项进行匹配。
我想和大家分享一下以前的插件1.用于查找未使用、已声明和可传递依赖项的Gradle插件为com.github.nullstress.dependency-analysis但是其最新版本1.0.3创建于2014年12月23日。之后没有任何更新。B:我们的许多工程师对this plugin感到困惑,因为他们只更新了版本号,没有更新其他内容。
umuewwlo2#
我刚了解到这个:https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysisGithub从外观上看,它正在积极发展,但我还没有测试它。编辑:实际上它非常棒,它提供了很多建议(eidogg.是否使用API与实现)
aamkag613#
前面的答案中提到的项目似乎已经死了。我使用gradle-dependency-analyze。安装很简单:
buildscript { repositories { jcenter() } dependencies { classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3' } } apply plugin: 'ca.cutterslade.analyze'
然后执行以下操作:
$ gradle analyzeDependencies
wrrgggsh4#
我在使用Gradle Dependency Analysis Plugin方面有很多运气。要开始使用它,请将以下两项添加到Gradle构建脚本中。
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3" } }
和
apply plugin: "dependencyAnalysis"
如果有未使用的依赖项,您将得到一个构建失败,显示类似于下面文本的输出,以及一个未使用依赖项的列表(声明的和可传递的)。如果您想通过CI构建强制要求没有未使用的依赖项,构建失败确实很方便。
:foo:analyze FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':foo:analyze'. > The project has unused declared artifacts
ecr0jaav5#
您可以尝试使用com.github.nullstress.dependency-analysis Gradle插件
构建可在所有Gradle版本中使用的脚本片段:
buildscript { repositories { jcenter() } dependencies { classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3" } } apply plugin: "com.github.nullstress.dependency-analysis"
为Gradle 2.1中引入的新孵化插件机制构建脚本片段:
plugins { id "com.github.nullstress.dependency-analysis" version "1.0.3" }
此外,Gradle论坛中也有关于此的主题(Is there a Gradle equivalent of "mvn dependency:analyze"?)。
3pvhb19x6#
大多数历史答案上的项目都死了,但gradle-dependency-analyze似乎在2016-05-30还活着。
6条答案
按热度按时间8fq7wneg1#
更新Kotlin用户:2021年12月17日:检测Kotlin项目中缺失或多余的构建依赖项:版本1.0.9(最新)
我为Kotlin用户添加了2种类型的配置。
使用插件DSL:
使用旧版插件应用程序:
资源链接:
更新日期:2016年6月28日:Android对未使用依赖项的支持
4.0.0 version
,并将根项目名称"gradle-lint-plugin"
重命名为"nebula-lint-plugin"
。他们还将Android支持添加到unused-dependency。在2016年5月Gradle实施了Gradle lint plugin,用于查找和移除不需要的依赖项
第1001章:
Gradle Lint插件是一款可插拔且可配置的linter工具,用于识别和报告Gradle脚本和相关文件中的误用或弃用模式。
这个插件有各种各样的规则。Unused Dependency Rule是其中之一。它有三个具体的特点。
1.移除未使用的相依性。
1.将代码直接使用的可传递依赖项提升为显式一阶依赖项。
1.将依赖关系重新定位到“正确”配置。
要应用规则,请添加:
最后给出了Unused Dependency Rule的详细设计。
要应用Gradle lint插件,请执行以下操作:
或者:
定义要对其执行lint的规则:
对于企业级构建,我们建议在init.gradle脚本或通过Gradle apply from机制包含的Gradle脚本中定义lint规则。
对于多模块项目,我们建议在
allprojects
块中应用插件:本部分给出了Unused Dependency Rule的详细信息
要应用规则,请添加:
该规则检查从项目的源代码集中发出的已编译二进制文件,以查找类引用,并将这些引用与您在依赖项块中声明的依赖项进行匹配。
具体来说,该规则对依赖关系进行以下调整:
1.删除未使用的依赖项
2.将代码直接使用的可传递依赖项提升为显式一阶依赖项
3.将依赖关系重新定位到“正确”配置
UPDATE:以前的插件
我想和大家分享一下以前的插件
1.用于查找未使用、已声明和可传递依赖项的Gradle插件为com.github.nullstress.dependency-analysis
但是其最新版本1.0.3创建于2014年12月23日。之后没有任何更新。
B:我们的许多工程师对this plugin感到困惑,因为他们只更新了版本号,没有更新其他内容。
umuewwlo2#
我刚了解到这个:https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
Github
从外观上看,它正在积极发展,但我还没有测试它。
编辑:实际上它非常棒,它提供了很多建议(eidogg.是否使用API与实现)
aamkag613#
前面的答案中提到的项目似乎已经死了。我使用gradle-dependency-analyze。安装很简单:
然后执行以下操作:
wrrgggsh4#
我在使用Gradle Dependency Analysis Plugin方面有很多运气。要开始使用它,请将以下两项添加到Gradle构建脚本中。
和
如果有未使用的依赖项,您将得到一个构建失败,显示类似于下面文本的输出,以及一个未使用依赖项的列表(声明的和可传递的)。如果您想通过CI构建强制要求没有未使用的依赖项,构建失败确实很方便。
ecr0jaav5#
您可以尝试使用com.github.nullstress.dependency-analysis Gradle插件
构建可在所有Gradle版本中使用的脚本片段:
为Gradle 2.1中引入的新孵化插件机制构建脚本片段:
此外,Gradle论坛中也有关于此的主题(Is there a Gradle equivalent of "mvn dependency:analyze"?)。
3pvhb19x6#
大多数历史答案上的项目都死了,但gradle-dependency-analyze似乎在2016-05-30还活着。