2016-08-08 11 views
3

Я использую Maven для создания Java-проекта, и у меня есть пара файлов CHANGELOG и LICENSE, которые я бы хотел скопировать в каталог внутри JAR файл.Maven: включить файлы в JAR's META-INF

До сих пор, что я должен работать следующий:

<build> 
    <resources> 
     <resource> 
      <directory>${project.basedir}</directory> 
      <includes> 
       <include>CHANGELOG</include> 
       <include>LICENSE</include> 
      </includes> 
      <targetPath>META-INF</targetPath> 
     </resource> 
    </resources> 
    <plugins> 
     ... 

но что также копирует эти два файла в каталог classes/META-INF при компиляции.

Поэтому я хотел бы, чтобы файлы были включены в файл JAR, но нигде больше. Есть ли способ сделать это?

ответ

5

Вам не нужно указывать какую-либо пользовательскую конфигурацию maven для удовлетворения ваших потребностей.
В src/main/resources, создавая просто папку META-INF и размещаем ваши файлы здесь.
Таким образом, вы можете найти их в папке META-INF встроенного JAR.

Кроме того, вы должны удалить <resource> элемент, добавленный в pom.xml, поскольку она изменяет папку ресурсов по умолчанию в корневом каталоге проекта, а не по умолчанию src/main/resources.

+0

Но результат тот же, верно? Если мы просто скомпилируем его, он также скопирует эти файлы ресурсов. Я хочу, чтобы они были скопированы только в файл JAR. –

+0

не очень, так как в Jar ресурсы не будут дублироваться в классах/META-INF. Они будут представлены только в каталоге META-INF, как объяснено. – davidxxx

+0

Привет @davidxxx. Я заметил ваш комментарий, когда ресурсы должны идти в META-INF, но можно ли разместить ресурсы в корневом файле jar, рядом с META-INF? Благодарю. – Cristian