2017-09-11 10 views
0

私は、次のディレクトリ構造を持つマルチプロジェクトGradleのプロジェクトを持って構築しますコンパイルされたJSファイルの出力ファイルパスを指定する特別なKotlin JS設定。Gradleのマルチプロジェクトでのパスが

今私の問題は、私は、プロジェクト全体(project_root/build.gradle)を構築する場合、ファイルが正しいディレクトリ(project_root/web)で終わること、ですが、私は偶然だけではモジュール上に構築実行すると、ファイルがモジュールディレクトリに保存されます(project_root/module1/web )。

ビルドスクリプトに関係なく、ファイル出力がまったく同じディレクトリに保存されるようにビルドスクリプトのパスを修正できます(絶対パスを指定せずに、相対パスが必要です)。

答えて

1

コード例でGradleプラグインにpathパラメータが必要なのはわかりませんが、さまざまな作業ディレクトリからGradleを呼び出すときは、別の場所を避けるためにすべての正規の(サードパーティ以外の)GradleプラグインはProject.files(Object...)でパスパラメータを評価します。

上記の方法(またはその単一ファイルバージョンProject.file(Object))を使用することをお勧めします。 build.gradleファイルは、プロジェクトのスコープ内で実行されますので、あなたも、project一部を省略することができます。

compileKotlin2Js.kotlinOptions { 
    outputFile = file('web/script.js') 
} 

これは常にあなたのbuild.gradleが所属するプロジェクトのプロジェクトディレクトリからの相対パスを評価します。ルートプロジェクトのプロジェクトディレクトリを基準にしてファイルを評価するには、rootProject.files(Object...)を使用し、サブプロジェクトのプロジェクトディレクトリまたはビルド内のプロジェクトの相対パスには、project(':path:to:project').files(Object...)を使用します。

関連する問題