powershell - Gradle -v 命令指向旧版本

标签 powershell gradle updates

目前我正在尝试将 Gradle 2.0 更新到 2.11。在 getting-started.html我的 gradle 发行版 (2.11) 的文件描述了如何安装更新的 Gradle 版本。我将 .zip 解压到所需位置并解压。我设置环境变量GRADLE_HOME因此,它包含在 PATH 中.

然而gradle -v将打印:

-------------------------------------------------- ----------
Gradle 2.0
-------------------------------------------------- ----------

构建时间:2014-07-01 07:45:34 UTC
内部编号:无
修订: b6ead6fa452dfdadec484059191eb641d817226c

我使用 Get-Childitem env:GRADLE_HOME 检查了我的环境变量,它确实打印:

名称 值
---- -----
GRADLE_HOME C:\dev\programs\gradle-2.11

重新启动 PowerShell 甚至计算机都没有帮助。我还设置了一个指向 GRADLE_USER 的变量。 (这是一个 .gradle 文件夹)有一个已知的问题吗?还是我只是在安装过程中遗漏了一些东西?

最佳答案

仅当可执行文件位于 PATH 中列出的文件夹之一时,PowerShell 才会运行没有路径的可执行文件。环境变量($env:Path 在 PowerShell 中)。很可能您仍然拥有那里列出的旧安装的路径(类似于 ...;C:\dev\programs\gradle-2.0\bin;... )。根据定义的位置,您需要在系统或用户环境中更改它。

您可以避免更新 PATH使用 GRADLE_HOME 进行每次 Gradle 更新的环境变量里面的环境变量。但是,要使其正常工作,您必须将相应的注册表值设为 REG_EXPAND_SZ。值(默认为 REG_SZ)。系统环境存储在此注册表项中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

The user environment is stored in this key:

HKEY_CURRENT_USER\Environment

You can change the type of the PATH value to REG_EXPAND_SZ with something like this:

$key  = 'HKEY_CURRENT_USER\Environment'
$path = [Microsoft.Win32.Registry]::GetValue($key, 'PATH', $null)
$path += ';%GRADLE_HOME%\bin'
[Microsoft.Win32.Registry]::SetValue($key, 'PATH', $path, 'ExpandString')

或(更详细一点)像这样:
$key  = 'HKEY_CURRENT_USER\Environment'
$path = [Microsoft.Win32.Registry]::GetValue($key, 'PATH', $null) -split ';' |
        Where-Object { $_ -notlike '*gradle*' }
$path = (@($path) + '%GRADLE_HOME%\bin') -join ';'
[Microsoft.Win32.Registry]::SetValue($key, 'PATH', $path, 'ExpandString')

后者将在添加 GRADLE_HOME 之前从环境变量中删除现有的 Gradle 路径。 - 基于路径。

更改$key到系统环境 key 来修改系统而不是您的用户环境(需要管理员权限)。

通过把 %GRADLE_HOME%\binPATH (并让操作系统通过将注册表值设为 REG_EXPAND_SZ 来扩展变量)PowerShell 将始终使用 gradle.exe来自 bin $env:GRADLE_HOME 中的目录.

关于powershell - Gradle -v 命令指向旧版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339987/

相关文章:

json - 如何从 Powershell 脚本读取 JSON 数据并遍历它

gradle - 如何在 RAD websphere 中安装 gradle 插件?

android - 在 Android Studio 中安装 Google Play Service 9.6

database - 在 coldfusion 中 x 时间后自动更新或删除记录

powershell - 如何开始使用 PowerShell?

visual-studio - 包管理器控制台上的 PowerShell 版本

powershell - 哈希文本中不允许使用空键

java - Gradle、Spring Boot、Maven 发布 - 发布仅包含依赖项和/或约束而没有版本

android - Kotlin 编译 "ERROR: The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.0 and higher."但 build.gradle 中没有 kotlin_version?

Cassandra CQL3 条件插入/更新