2011-02-17 6 views
3

Я разрабатываю простую автономную командную строку Java-приложения. Проект управляется Maven. Я хотел бы построить поставляемый, который можно скопировать и запустить на машине клиента.Плагин сборки Maven: исключая файлы при использовании стандартного дескриптораRef

Плагин maven-assembly со стандартным типом «jar-with-dependencies» подходит для меня, но Я не хочу упаковывать файл log4j.properties в банку. Я предпочел бы его в отдельной папке «res».

Мне удалось помещать заголовок класса в файл манифеста для папки res, но у меня возникли проблемы с исключением файла log4j.properties из сгенерированной банки.

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

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <excludes> 
      <exclude>**/log4j.properties</exclude> 
     </excludes> 
     <archive> 
      <manifest> 
       <mainClass>com.my.App</mainClass> 
      </manifest> 
      <manifestEntries> 
       <Class-Path>res/</Class-Path> 
      </manifestEntries> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration></plugin> 

но это не работает. Должен ли я писать собственный дескриптор сборки для этого?

+0

Переместите файл log4j.properties в папку src/main/resources. – khmarbaise

ответ

2

От doc, похоже, что вы не можете исключить файлы, настроив только параметры <plugin>.

<excludes> не является действительным параметром для плагина и, таким образом, игнорируется.

+0

Что мне помогло, так это то, что я нашел дескриптор сборки встроенного формата «jar-with-dependencies». Используя это, я мог бы избежать незначительных изменений. – Karl

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