カスタムビルドファイルをルートプロジェクトディレクトリのパスを取得することは、私のGradleプロジェクトの構造は以下の通りです:のGradle:起動時に
Project
├── app
└── build.gradle
├── foo
└── bar.txt
·
·
·
└── build.gradle
通常、私はただ単に行うことができますfoo
フォルダの絶対パスを取得しますルートbuild.gradle
のnew File('foo').getAbsolutePath()
にあります。
しかし、あなたはこのような何かやっ例えば、プロジェクトディレクトリの外部からのGradleスクリプトを実行した場合、これは残念ながら動作しません。
$ trunk/gradlew -b trunk/build.gradle tasks
前のコマンドのGradleでは、中foo
ディレクトリを探しています私はそこからスクリプトを開始したので、プロジェクトの親です。
別のディレクトリからスクリプトを起動した場合でも、build.gradleの絶対パスを取得する方法はありますか?または、スクリプトがある同じフォルダ内のディレクトリの参照を取得する他の方法はありますか?
私はgetClass().protectionDomain.codeSource.location.path
でも試してみましたが、それはgradle cacheディレクトリへのパスを返しています。
感謝ねえ!そして私はちょうどことを実現私は 'rootProject.projectDir'を使って現在のプロジェクトディレクトリへのパスを得ることができます。しかし、私の場合、あなたのソリューションはより簡単できれいになります –
Netbeansでは、少なくとも' File( 'foo') 'は必ずしもgradleではありません。ファイルライフを構築する。私は私のfooがNetbeansの 'userDir'にあったことを発見するまでバグがあったと思った。 – will
@小文字で' 'ファイル' "? – Vampire