我想在我的项目中找到未使用的依赖项。Gradle中有没有类似Maven的功能?
我刚刚了解到这一点:https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
github
从外观上看,它正在积极开发中,但我还没有测试它。
编辑:实际上它非常棒,它提供了很多建议(例如,是否使用api与实现)
在前面的回答中提到的项目似乎已经死了。我使用gradle依赖性分析。设置很简单:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
然后做:
$ gradle analyzeDependencies
2017年6月,他们发布了4.0.0版本
,并将根项目名称“gradle lint plugin”
重命名为“nebula lint plugin”
。他们还向未使用的依赖项添加了Android支持。
2016年5月,Gradle实现了Gradle lint插件,用于查找和删除不需要的依赖项
Gradle Lint插件是一个可插入且可配置的linter工具,用于识别和报告Gradle脚本和相关文件中的误用或弃用模式。
这个插件有各种规则。未使用的依赖项规则就是其中之一。它有三个特点。
要应用该规则,请添加:
gradleLint.rules += 'unused-dependency'
最后一部分给出了未使用依赖规则的详细信息。
要应用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'
定义要根据哪些规则进行筛选:
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
对于企业构建,我们建议在init中定义lint规则。gradle脚本或通过gradle apply from机制包含的gradle脚本中。
对于多模块项目,我们建议在allprojects
块中应用插件:
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
要应用该规则,请添加:
gradleLint.rules += 'unused-dependency'
该规则检查从项目源集发出的已编译二进制文件,查找类引用,并将这些引用与您在依赖项块中声明的依赖项相匹配。
为了您的信息,我想分享一下以前的插件
但其最新版本1.0.3于2014年12月23日发布。之后就没有任何更新了。
注:我们的许多工程师对这个插件感到困惑,因为他们只更新了版本号,没有更新其他内容。
我正在更新一大组遗留java应用程序。当前构建使用ant,其依赖项来自每个项目的lib目录。依赖项是每个项目的一部分,并签入源代码管理。更新的目的是将构建转换为gradle,并使用maven存储库进行依赖关系管理。为了简单起见,遗留构建使用ant构造从其他项目的lib目录复制依赖项,如下所示: 这种方法用于编译和运行时依赖项。虽然这样做有效,但由于包含了许多在运行时不需要的JAR,因此会导致部署工
我在构建项目时收到以下错误: 据我所知,这是因为我有多个依赖于slf4j的库。我的构建中的依赖项。gradle文件是: 我知道logback-android-经典依赖是个问题,因为它确实依赖于slf4j,如果我把它注释掉,我的项目构建很好。根据其他消息来源,我发现这通常通过排除传递依赖来解决,如下所示: 然而,即使在我清理和重建后,我仍然得到了错误。 更新:运行dependencyInsight查
我是使用gradle构建的新手。目前,我尝试实现项目B的构建,该构建使用项目a的构建结果,该结果部署到artifactory。我使用的是Gradle 2.2。详细信息: 项目A的build.gradle包含: 每次构建项目a时,应用插件“maven”会在artifatory中生成一个新的工件,如at.mic.projectA-1.0.0-20150624.073846-2.jar(和.pom)。
我已经在gradle文件中添加了依赖项,但仍然无法识别jar文件的类。 我得到错误-不能解决类在这里 我已经提到了以下几点 Android Studio缺少外部依赖项 Android Studio坚持使用“Gradle:resolve Dependencies'_debugCompile'”或“detachedConfiguration1” 如何添加本地. jar文件依赖build.gradle文
我在Glassfish上部署了一个由Maven管理的Java项目。 我的问题是,如何安全地删除可能是运行时依赖项的maven管理的依赖项? 我使用maven依赖插件来识别遗留项目上未使用的依赖项: 输出如下: 我想删除这些“未使用”的依赖项,但我担心应用程序在运行时失败。 我启用的忽略非编译选项promise“忽略运行时/提供/测试/系统范围以进行未使用的依赖项分析”,但据我所知,设置依赖项的范围