Каков простой способ фильтрации подмножества файлов в src / main / webapp? - PullRequest
12 голосов
/ 08 марта 2012

Я делаю maven преобразование в gradle и хочу узнать мнение о том, как лучше всего выполнить следующее.В настоящее время у меня есть несколько файлов в src / main / webapp.Некоторым нужно фильтровать одним способом, а другим нужно фильтровать другим.

Условно в каталоге src / main / webapp У меня есть каталог foo, содержащий html и двоичные файлы, и в webapp много других файлов, включая html.Я хочу фильтровать только файлы foo / *. Html.

В моем условном build.gradle я могу сделать:

war {
  eachFile {
    if(shouldFilter(it)) {
      it.filter(ReplaceTokens, tokens: [key: 'value'])
    }
  }
}

def shouldFilter(input) {
  input.path.contains('foo') && input.name.endsWith('.html')
}

или переместить каждое подмножество в свой собственный каталог, который не являетсяпо умолчанию копируется

war {
  from('src/main/foo-pre-filter') {
    into 'foo'
    include '*.html'
    filter(ReplaceTokens, tokens: [key: 'value'])
  }
}

Или есть другой вариант, который я пропустил?

1 Ответ

16 голосов
/ 14 марта 2014

Если я правильно понял вопрос, вы можете использовать файлы Matching.Кроме того, я бы сделал это как часть задачи processResources, а не задачи войны.Это выглядело бы примерно так:

processResources {
    filesMatching('foo/*.html') {
        filter(ReplaceTokens, tokens: [key: 'value'])
    }
}

Я понимаю, что первоначальный вопрос задавался 2 года назад, так что это, вероятно, не поможет спрашивающему, но, возможно, это может помочь кому-то еще в будущем.

...