0

私はgradleによって管理されている複数のモジュールのprojecyを持っています。ディレクトリ構造は次のとおりです。

  • モニタリング
    • クライアント
    • サーバ

監視レベルで「gradle war」を呼び出すと、次の例外が発生します。

「監視/js が存在しません。」

クライアントのbuild.gradleからのもの:

task copyJs << {

     'mkdir src/main/webapp/js'.execute()

     def ant = new groovy.util.AntBuilder()
     ant.copy(todir: 'src/main/webapp/js') {
          fileset(dir: 'js') {
               include(name: '**/*.js')
          }
     }
}

上記のタスクがプロジェクトのルート レベルで実行されるため、例外が発生します。適切な (クライアント) レベルで実行されるように変更するにはどうすればよいですか? 使用されているantタスクのbasedirを変更するには?

4

2 に答える 2

2

別のオプションは、コピー タスクを使用することです。

task copyJs(type:Copy){
    into('src/main/webapp/js')
    from('js') {
        include '**/*.js'
    }
}

これには、出力ディレクトリがまだ存在しない場合に自動的に作成されるという利点があります。上記の回答のように、コピー操作の代わりにコピー タスクを使用するもう 1 つの利点は、コピー タスクがインクリメンタル ビルドの実行 (最新のチェック) をサポートすることです。

よろしく、 ルネ

于 2012-06-04T23:13:31.027 に答える
1

ここで説明されているように行う必要があります

task copyJs << {

    file('src/main/webapp/js').mkdir()

    copy {
        into 'src/main/webapp/js'
        from('js') {
            include '**/*.js'
        }
    }
}
于 2012-06-04T14:40:58.560 に答える