目前我正在尝试将Gradle 2.0更新为2.11。在我的gradle发行版的getting-started.html
文件中(2.11)描述了如何安装较新的Gradle版本。我将.zip解压缩到所需位置并打开包装。我相应地设置了环境变量GRADLE_HOME
,它包含在PATH
。
但gradle -v
会打印出来:
------------------------------------------------------------ Gradle 2.0 ------------------------------------------------------------ Build time: 2014-07-01 07:45:34 UTC Build number: none Revision: b6ead6fa452dfdadec484059191eb641d817226c
我使用Get-Childitem env:GRADLE_HOME
检查了我的环境变量,它打印了:
Name Value ---- ----- GRADLE_HOME C:\dev\programs\gradle-2.11
重新启动PowerShell甚至计算机都没有帮助。我还设置了一个指向GRADLE_USER
的变量(这是一个.gradle文件夹)是否存在已知问题?或者我在安装过程中遗漏了什么?
答案 0 :(得分:1)
只有当PowerShell位于PATH
环境变量(PowerShell中的$env:Path
)中列出的其中一个文件夹中时,PowerShell才会运行没有路径的可执行文件。很可能你仍然有那里列出的旧安装的路径(类似...;C:\dev\programs\gradle-2.0\bin;...
)。根据定义的位置,您需要在系统或用户环境中对其进行更改。
通过使用PATH
环境变量,您可以避免需要使用每个Gradle更新更新GRADLE_HOME
环境变量。但是,要使其工作,您必须使相应的注册表值为REG_EXPAND_SZ
值(默认值为REG_SZ
)。系统环境存储在此注册表项中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
用户环境存储在此密钥中:
HKEY_CURRENT_USER\Environment
您可以使用以下内容将PATH
值的类型更改为REG_EXPAND_SZ
:
$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
更改为系统环境密钥以修改系统而不是用户环境(需要管理员权限)。
将%GRADLE_HOME%\bin
放入PATH
(并让操作系统通过使注册表值为REG_EXPAND_SZ
来扩展变量)PowerShell将始终使用gradle.exe
中的bin
$env:GRADLE_HOME
中的class ViewController: UIViewController {
var numbers = Numbers.singleton.numbers
override func viewDidLoad() {
print(numbers.count)
Numbers.singleton.add(1)
print(numbers.count) // prints 0
print(Numbers.singleton.numbers.count) // prints 1
}
}
class Numbers {
static let singleton = Numbers()
var numbers: [Int]!
private init() {
numbers = []
}
func add(number: Int) {
numbers.append(number)
}
}
目录。