Gradle【有与无】【用户手册】【G5】对构建进行故障排除

目录

对构建进行故障排除

对Gradle安装进行故障排除

找不到命令:gradle

JAVA_HOME设置为无效目录

没有权限

其他安装失败

调试依赖项解析

对缓慢的Gradle构建进行故障排除

调试构建逻辑

添加和更改日志记录

应该在UP-TO-DATE执行的任务

调试IDE集成

刷新IntelliJ IDEA

刷新Eclipse(使用Buildship)

获得更多帮助


对构建进行故障排除

以下是常见问题的集合以及解决这些问题的建议。您可以获取其他技巧,并搜索Gradle论坛StackOverflow #gradle答案以及来自help.gradle.org的Gradle文档。

 

对Gradle安装进行故障排除

如果您按照安装说明进行操作,并且无法执行Gradle构建,则以下一些技巧可能会有所帮助。

如果您仅在调用Gradle Wrapper之外安装了Gradle,则可以通过gradle --version在终端中运行来检查Gradle的安装。

您应该会看到以下内容:

❯ gradle --version

-----------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-21 15:28:42 UTC
Revision:     819e0059da49f469d3e9b2896dc4e72537c4847d

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          1.8.0_151 (Oracle Corporation 25.151-b12)
OS:           Mac OS X 10.13.3 x86_64

如果没有,您可能会看到一些东西。

 

找不到命令:gradle

如果收到“command not found: gradle”,则需要确保Gradle已正确添加到您的PATH中。

 

JAVA_HOME设置为无效目录

如果您得到以下信息:

ERROR: JAVA_HOME is set to an invalid directory

Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

您需要确保正确安装了Java Development Kit版本8或更高版本,已设置JAVA_HOME环境变量,并将Java添加到了PATH中。

 

没有权限

如果您获得“permission denied”,则表示Gradle可能存在于正确的位置,但不可执行。您可以chmod +x path/to/executable在基于* nix的系统上解决此问题。

 

其他安装失败

如果gradle --version可行,但是您所有的构建都因相同的错误而失败,则您的Gradle构建配置脚本之一可能存在问题。

您可以通过运行gradle help配置脚本而不执行Gradle任务来验证问题是否出在Gradle脚本上。如果错误仍然存​​在,则构建配置存在问题。如果不是,则问题在于执行一个或多个请求的任务(Gradle首先执行配置脚本,然后执行构建步骤)。

 

调试依赖项解析

疑难解答依赖性解析中介绍了常见的依赖性解析问题,例如解决版本冲突。

通过单击“依赖关系(Dependencies )”视图并使用搜索功能,并指定解决原因,您可以看到依赖关系树,并查看哪些已解决的依赖关系版本与请求的版本有所不同。

图1.调试依赖项与构建扫描冲突

可以使用带有筛选条件的实际构建扫描进行探索。

 

对缓慢的Gradle构建进行故障排除

有关构建性能问题(包括“slow sync time”),请参阅《提高Gradle构建的性能指南》。

Android开发人员应观看Android SDK工具团队的有关加速Android Gradle构建的演示。Android Studio用户指南还介绍了许多有关优化构建速度的技巧。

 

调试构建逻辑

通过将属性org.gradle.debug设置为“ true”,然后将远程调试器附加到端口5005 ,可以在Gradle构建自身中设置断点并调试buildSrc和独立插件

❯ gradle help -Dorg.gradle.debug=true

此外,如果您采用了Kotlin DSL,则还可以自己调试构建脚本。

以下视频演示了如何使用IntelliJ IDEA调试示例构建。

图2.构建脚本的交互式调试

 

添加和更改日志记录

除了控制日志记录的详细程度之外,您还可以使用--console=verbose flag控制生命周期日志记录中任务结果的显示(例如“ UP-TO-DATE”)。

您还可以通过注册各种事件侦听器,用自己的Gradle日志记录代替许多日志记录。日志记录文档中说明了一个自定义事件记录器的示例。您还可以从外部工具控制日志记录,使它们更加冗长,以便调试它们的执行。

您可以在下找到Gradle Daemon的其他日志GRADLE_USER_HOME/daemon/<gradle-version>/

 

应该在UP-TO-DATE执行的任务

--info日志解释了执行任务的原因,尽管构建扫描通过以下方式以可搜索的可视方式执行此操作:转到“时间轴(Timeline)”视图,然后单击要检查的任务。

图3.使用构建扫描调试增量构建

您可以从此清单中了解任务结果的含义

 

调试IDE集成

可以通过“refreshing” Gradle解决IDE中许多不常见的错误。另请参阅有关在IntelliJ IDEAEclipse中使用Gradle的更多文档。

 

刷新IntelliJ IDEA

注意:这仅适用于链接到IntelliJ的Gradle项目。

在主菜单中,进入ViewTool WindowsGradle。然后单击刷新图标。

图4.在IntelliJ IDEA中刷新Gradle项目

 

刷新Eclipse(使用Buildship)

如果您将Buildship用于Eclipse IDE,则可以通过打开“Gradle Tasks”视图并单击“Refresh”图标,或者通过在编辑Gradle脚本时从上下文菜单执行GradleRefresh Gradle Project命令来重新同步Gradle构建。

图5.在Eclipse Buildship中刷新Gradle项目

 

获得更多帮助

如果您在这里没有找到解决问题的方法,请在帮助论坛上与Gradle社区联系,或者使用help.gradle.org搜索相关的开发人员资源。

如果您认为自己在Gradle中发现了错误,请在GitHub上提交问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值