2013-05-24 21 views
20

私はgradleタスクを「OSに依存しないシェルスクリプト」のようなものとして使用しようとしています。ビルドファイルのロジックを書く上で問題はありませんが、どのフォルダからでも実行できるようにしたいと考えています。Gradle: "gradle"が実行されたフォルダを取得する

私の最初の試みは、パス上の私のbuild.gradleファイルとフォルダを入れ、次に実行しようとしました:

gradle myMask 

build.gradleが含まれていないフォルダから - それはdoesnの仕事はありません。

gradle -b /folder/containing/build.gradle myTask 

しかし、それは唯一のいくつかは、拡張に働いた:

私の次の試みでした。私の仕事では、現在のディレクトリ内のすべてのファイルを探したいと思います。現在 - 私が試してみましたbuild.gradleが含まれている1が、その中で、私が実行していますから、一つの "Gradleの....."

ないことを意味:

file(".") 

file("$projectDir") 

などがありますが、それらのすべてがビルドスクリプトを含むフォルダを指していますが、私が実行している のものはありません。

どうすればいいですか?

+1

ここで、System.getProperty( "user.dir")を追加しましたか? – Ahmed

答えて

42

と勝者は次のとおりです。

System.getProperty("user.dir") 
11

ファイル(「」)は、常に必ずしもなく作業ディレクトリをイマイチ、現在のプロジェクトフォルダを返します。作業ディレクトリを参照するには、次のものを使用できます。

new File(".").absolutePath 

希望に役立ちます。

ルネ

+1

いいえ、それは動作しません。これはbuild.gradleファイルがあるフォルダを返します。そして、これはまさに私が望まないものです。 –

+1

このスニペットをテストしましたか?私はそれが新しいFile( "。")のデフォルトのJavaの動作であるので、現在のworkingDirを返すと確信しています。 –

+1

実際にこれは私が探していたものですが、質問された質問には答えられないかもしれません。ありがとう! – milosmns

関連する問題