6

GRADLE_USER_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_USER_HOME設定しC:\Users\Baz Foo\.gradle、試してみまし--gradle-user-home="C:\Users\Baz Foo\.gradle"たが、どれも機能しません。

4

3 に答える 3

6

GRADLE_USER_HOMEスペースのないパスを指すように明示的に定義しました(例:) E:\gradle-repository。このgradle-repositoryフォルダーには、初期化スクリプト(init.gradleファイル。Gradle初期化スクリプトを参照)が含まれています。

于 2012-12-12T11:42:18.180 に答える
2

ここでの推奨事項に従って、選択したディレクトリに構成するだけです(システムドライブの外にある場合もあります)。

以下に引用するユーザー構成ファイルとは関係なく、Gradleキャッシュの場所を指定できるようにします。

initスクリプトも変更することをお勧めします:

初期化スクリプト

現在の動作

gradleユーザーのホームディレクトリの場所は、コマンドラインで(-gまたは--gradle-user-home)を使用して指定するか、システムプロパティ(gradle.user.home)として指定するか、環境変数(GRADLE_USER_HOME)をデフォルト(通常は)で設定することで構成できます。 USER_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いくつかのディレクトリとそれらへのシンボリックリンク、またはすべてが爆発します。」

于 2018-05-21T08:29:51.180 に答える
-3

start-> run-> cmdに移動してコマンドプロンプトを開き、次のように入力します

dir c:\users /x

短い名前を書き留めます-次のようなものにする必要がありますBaz~1

短い名前を使用してみてください。それはDOSの二日酔いです。

于 2012-08-17T13:17:38.517 に答える