2014-09-13 2 views
1

Может ли кто-нибудь объяснить мне различия между этими двумя определениями ресурсов? Почему файлы jar исключены, но во второй включенный ресурс? Я не понимаю этих двух заявлений:Каковы различия между этими двумя определениями ресурсов Maven?

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
      <excludes> 
       <exclude>**/*.jar</exclude> 
       <exclude>myDummyPath/war/l10n/*.*</exclude> 
      </excludes> 
     </resource> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>false</filtering> 
      <includes> 
       <include>**/*.jar</include> 
      </includes> 
     </resource> 
</resources> 
+0

@BoristheSpider Почему вы устранили правильный тег и добавили неверный здесь? Это вопрос 'java', и XML является случайным. – chrylis

+0

@chrylis Извините, я пытался заставить подсветку синтаксиса работать - в конце концов hexacraction исправил ее. Кажется, вам нужен язык: 'а не' lang: 'в подсказке языка. –

+0

@chrylis ах, это не работает. Кажется, что без тега 'xml' подсветка синтаксиса не слишком полезна. –

ответ

0

Посмотрите на различные настройки filtering. Автор хочет, чтобы Maven заменил местозаполнители в некоторых файлах (возможно, конфигурационных файлах), но не разбивал двоичные файлы jar.

2

Первое отличие, очевидно, пути:

<excludes> 
    <exclude>**/*.jar</exclude> 
    <exclude>myDummyPath/war/l10n/*.*</exclude> 
</excludes> 

И:

<includes> 
    <include>**/*.jar</include> 
</includes> 

Очевидно, что первая декларация исключает все .jar файлы и все под I10n. Второй путь, с другой стороны, включает только .jar.

Далее первое объявление разрешает фильтрацию, а второе отключает его. В maven фильтрация (по умолчанию) заменяет все переменные заполнители ${...} с их значениями - для получения дополнительной информации см. the documentation.

Таким образом, в первом объявлении все ресурсы, кроме .jar файлов и файлов локализации, фильтруются maven - замена в значениях для заполнителей, таких как ${project.name}.

Во второй декларации все ресурсы .jar копируются, без фильтрации.

+0

Что вы имеете в виду с копией? Я не понимаю этого – Marwief

+0

Ну, когда проект построен, файлы копируются из исходного кода ('/ src/main /') в построенный артефакт - '.jar' или' .war' или что-то еще. Это стандартный процесс сборки - если вы этого не знаете, возможно, вам нужно прочитать [документацию] (http://maven.apache.org/guides/getting-started/index.html). –

Смежные вопросы