2

プロジェクトをantからgradleに切り替えました。Gradleスクリプトは次のようになります

[...]    
def filterFile = System.getProperty('filter.file')
[...]

すべてのタスクは、環境変数filterFileに大きく依存しています。ビルドシップ (2.2.1 v20180125-1441) で Eclipse (Oxygen.2 Decemeber 2017) を使用します (どういうわけか Eclipse にプリインストールされていましたか?ビルドシップが自動的に Eclipse に付属するというのは正しいですか?)

私がそれを機能させる唯一の方法は、タスクレベルで変数を設定することですスクリーンショットを参照してください

ここに画像の説明を入力

同じことはプロジェクトレベルでは機能し ません:ここに画像の説明を入力

ここに画像の説明を入力

タスクの設定を削除してプロジェクトのグローバル設定に配置し、まったく同じタスクを実行すると、次のように表示されます。

Program Arguments: None
Build Scans Enabled: false
Offline Mode Enabled: false
Gradle Tasks: copyHtml

Filter file null not loaded, some tasks may fail

これは、タスクレベルで設定すると機能します。

これは、Eclipse での gradle の私の設定です。 ここに画像の説明を入力

プロジェクト全体の環境変数を設定する方法を説明してください。ところで:私は問題をグーグルで検索し、ホームディレクトリのgradle.propertiesファイルについて知りました。しかし、これはプロジェクト変数を設定し、環境変数は設定しないと思います。ant から gradle に切り替えたので、gradle ビルド スクリプトは System.getProperty('filter.file') に依存しています。すべてのタスクでこれを変更します (タスクがたくさんあるため)。

お知らせ下さい!

4

1 に答える 1

2

これらは、環境変数(オペレーティング システムのもの) ではなく、システム プロパティ(Java のもの) であることに注意してください。

現在のセットアップが機能しないのはなぜですか?

2 番目の例は、プロジェクト全体のコマンド ライン引数ではなく、タスクを指定せずに Gradle を実行するEclipse実行構成のコマンド ライン引数を適用します。これにより、Gradle はタスクを実行せずに構成フェーズのみを実行するか、ビルド スクリプトで指定した場合はデフォルトのタスクを実行します。

どのように問題を解決できますか?

システム プロパティに関する Gradle ドキュメントを読むことができるように、コマンド ライン オプションを使用し-Dてシステム プロパティを登録するだけでなく、gradle.properties既に言及したファイルも使用できます。systemPropプロパティ名にプレフィックスを追加するだけです。

systemProp.filter.file=hhe-lenovo.dev.properties
于 2018-02-25T11:26:40.087 に答える