当前位置: 首页 > 知识库问答 >
问题:

查找未使用的gradle运行时依赖项

陶和歌
2023-03-14

我正在更新一大组遗留java应用程序。当前构建使用ant,其依赖项来自每个项目的lib目录。依赖项是每个项目的一部分,并签入源代码管理。更新的目的是将构建转换为gradle,并使用maven存储库进行依赖关系管理。为了简单起见,遗留构建使用ant构造从其他项目的lib目录复制依赖项,如下所示:

<fileset dir="../anotherlegacyproject/lib">
    <include name="**/*.jar" />
</fileset>

这种方法用于编译和运行时依赖项。虽然这样做有效,但由于包含了许多在运行时不需要的JAR,因此会导致部署工件的膨胀。例如,许多项目在运行时包含junit、hamcrest和jaxb-xjc,尽管它们仅用于编译或测试。大多数项目都创建了一个zip文件和一个包含可部署应用程序的RPM。我只想在RPM中包含所需的运行时依赖项。

我正在尝试确定一种可靠的方法来识别这些未使用的运行时依赖项。

我已经审阅了文章:如何在gradle中查找\Remove unused dependencies,但这并没有解决未使用的运行时依赖项。我尝试过使用以下gradle插件,它们都没有识别未使用的运行时依赖项:

    null
    null

共有1个答案

屠坚壁
2023-03-14

最近我们将一些项目从1.6迁移到1.8,需要找出未使用的JAR。我试图使用一些插件和工具,但不能解决我的问题。关于堆栈溢出,我得到了一些解决这个问题的洞察力。下面是在Project中查找未使用的jar的步骤。

  1. 首先,您需要获取模块的最新EAR/WAR。假设您的模块名为CheckDependency,那么使用最新的EAR/WAR,并将其从lib文件夹中取出。
  2. 现在在eclipse中将模块的lib文件夹替换为新的,它取自ear/war。
  3. Eclipse转到您的模块并选择Gradle(STS)[这应该安装在您的计算机中]-->点击任务快速启动器-->选择projectTattleTaleReport它将在您的目标文件夹中生成所有报告,名称为TattleReport
 类似资料:
  • 我想在我的项目中找到未使用的依赖项。Gradle中有没有类似Maven的功能?

  • 我在Glassfish上部署了一个由Maven管理的Java项目。 我的问题是,如何安全地删除可能是运行时依赖项的maven管理的依赖项? 我使用maven依赖插件来识别遗留项目上未使用的依赖项: 输出如下: 我想删除这些“未使用”的依赖项,但我担心应用程序在运行时失败。 我启用的忽略非编译选项promise“忽略运行时/提供/测试/系统范围以进行未使用的依赖项分析”,但据我所知,设置依赖项的范围

  • 我是使用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文

  • 问题内容: Eclipse捆绑包(例如,在激活器代码中)如何在运行时找到依赖的Bundle实例?我想找到Eclipse选择满足依赖要求的捆绑软件,我不想自己解释清单。 一个例子:我想在我当前捆绑包所依赖的所有捆绑包中找到所有名为“ marker.txt”的资源。还有传递依赖。为了做到这一点,我需要能够找到所有这些捆绑包。 问题答案: 没有简单的方法来确定依赖关系。最好的方法是通过PackageAd

  • 我正在尝试将gradle eclipse项目导出到一个可运行的jar,但是它的依赖项并没有绑定到可运行的jar中。 I file->export->runnable jar->将所需库提取到生成的jar中。 如果我从configure build path选项手动执行“add external jar”,它们就会正确导出,但是我想通过gradle执行此操作,如果没有手动添加,它们就不会正确导出。