Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Windows 7中指定GRADLE_用户_主页_Java_Build_Gradle - Fatal编程技术网

Java 在Windows 7中指定GRADLE_用户_主页

Java 在Windows 7中指定GRADLE_用户_主页,java,build,gradle,Java,Build,Gradle,如何配置GRADLE\u USER\u HOME选项?我的Windows用户名包含一个空格(C:\Users\Baz-Foo),我认为构建会因此失败 E:\workspace-sts-3.0.0.RELEASE\agweb\ag-client\ag-shared\build\classes\main error: Class com.acme.client.conn.rmi.SessionRMIImpl not found. error: Class Foo\.gradle\caches\art

如何配置
GRADLE\u USER\u HOME
选项?我的Windows用户名包含一个空格(
C:\Users\Baz-Foo
),我认为构建会因此失败

E:\workspace-sts-3.0.0.RELEASE\agweb\ag-client\ag-shared\build\classes\main
error: Class com.acme.client.conn.rmi.SessionRMIImpl not found.
error: Class Foo\.gradle\caches\artifacts-13\filestore\xerces\xercesImpl\2.1
0.0\jar\9161654d2afe7f9063455f02ccca8e4ec2787222\xercesImpl-2.10.0.jar not found
.
error: Class Foo\.gradle\caches\artifacts-13\filestore\xml-apis\xml-apis\1.4
.01\jar\3789d9fada2d3d458c4ba2de349d48780f381ee3\xml-apis-1.4.01.jar;C:\Users\Baz
not found.
error: Class Foo\.gradle\caches\artifacts-13\filestore\provided\jbpm\3.0.4\j
ar\f2a9f8f32e59b335e069b5444f6c36a30abf0845\jbpm-3.0.4.jar;C:\Users\Baz not fou
nd.
error: Class Foo\.gradle\caches\artifacts-13\filestore\log4j\log4j\1.2.16\bu
ndle\7999a63bfccbc7c247a9aea10d83d4272bd492c6\log4j-1.2.16.jar;C:\Users\Baz not
found.
5 errors ...
我已经添加了一个环境变量
GRADLE\u USER\u HOME
并将其设置为
C:\Users\Baz Foo\.GRADLE
,还尝试了
--GRADLE USER HOME=“C:\Users\Baz Foo\.GRADLE”
但它们都不起作用。

开始->运行->cmd

目录c:\users/x

记下短名称-应该类似于Baz~1


尝试使用短名称。这是DOS遗留问题。

我明确定义了
GRADLE\u USER\u HOME
指向一个没有空格的路径(例如:
E:\GRADLE repository
)。
gradle repository
文件夹包含初始化脚本(init.gradle文件,请参阅)。

只需根据此处的建议将其配置到您选择的目录(可能在系统驱动器之外)

它在下面引用

您可能还需要更改初始化脚本:

当前行为

通过在命令行上提供gradle用户主目录(通过-g或--gradle user home),将其作为系统属性(gradle.user.home)提供,或者通过默认设置(通常为“user\u home/.gradle”)设置环境变量(gradle\u user\u home),可以配置gradle用户主目录的位置

在此目录下放置的项目中,有些是用户提供的配置文件,如gradle.properties、init.gradle、init.d下的任何文件,以及用户可能为这些项目创建的任何文件

其他项是缓存目录,例如缓存、本机和包装器。这些缓存通常包含信息缓存,如果需要,可以在以后重新获取这些信息,并且随着时间的推移,这些信息可能会变得相当大

最后,还有一些作业管理项目,比如守护进程下的项目

在这些项目中,除用户配置文件外,所有项目都存在用户主目录的共享文件系统问题。最明显和最严重的是,并不是所有共享文件系统都具有与本地文件系统相同的锁定行为,当用户试图一次在多台计算机上使用守护程序时,会产生非常奇怪的结果。但是,缓存也会导致问题,因为大型共享文件系统通常有配额限制用户在其共享空间中的存储量。因此,用户可能希望将大型可重放缓存放在本地磁盘上,远离其主目录

目前,无法将这些缓存和特定于主机的部分与用户配置文件的位置分开进行配置。所有都可以在GRADLE_USER_HOME下找到。因此,用户有几个解决问题的选项:

它们可以使用从GRADLE_USER_HOME目录到其他目录的符号链接,以便配置文件位于USER_HOME下,但缓存是通过跟随符号链接到/var/tmp或类似目录下的位置来找到的。这还要求用户让他们的登录脚本确保/var/tmp下的目录在每次登录后都存在,以防它们被关闭(或者用户登录到以前没有使用过的机器上) 他们可以使用GRADLE_USER_HOME环境变量将其整个目录(包括用户配置文件和缓存)定位在本地文件系统的某个位置,例如在/var/tmp下。这还要求用户让其登录脚本确保此目录存在,并将用户的每用户配置文件复制到其中。 期望行为

最佳情况下,应该可以为所有这些缓存目录提供备用位置。默认情况下,如果它们继续位于GRADLE_USER_HOME下,则没有问题,但可以一次重新定位所有缓存(可能使用GRADLE_USER_CACHE,默认为GRADLE_USER_HOME,如果不存在,将创建目标目录),或者为GRADLE_USER_HOME的每个子目录重新定位单个缓存目录(因此,您可以在不同的位置找到包装器、本机、守护程序和缓存—可能是在大于用户主目录的共享卷上定位包装器、本机和缓存,以及在本地卷上定位守护程序,以避免锁定和进程问题。)

由于这将允许缓存位置与用户配置位置分开配置,因此用户配置可能可用于指定缓存配置。例如,用户的gradle.properties文件可能指定新的基本缓存目录或新的单个缓存目录

上下文

正如我为支持原始票证而添加的评论中所述:

这对我来说很重要。我的组织使用分布式文件系统作为主目录,配额相当有限。这意味着,在人们可以使用gradle构建东西之前,他们必须在本地磁盘上设置gradle用户主页,或者从gradle用户主页到本地磁盘上某个位置的符号链接。 向用户解释如何做到这一点……比它应该做到的要困难得多。 它对球场也没什么好处:“嘿,试试这个很棒的构建工具吧!……但是首先你需要完成这个难看的乱七八糟的任务。”

使用环境变量或gradle属性更易于配置意味着可以说“将这一行添加到您的.profile”或“将这一行添加到您的.gradle/gradle.properties”,而不是“在您的登录脚本中运行这一长段代码,创建多个目录和指向它们的符号链接,否则一切都将爆炸”