2016-01-27 2 views
1

Я пытаюсь заставить maven включить мои файлы , когда он застегивает мои артефакты. Они расположены внутри src/main/resources. Я попытался добавить элемент fileSet в мой файл сборки, но ресурсы не включены в zip. Я видел this question, который, кажется, указывает, что добавление fileSet должно работать.maven-assembly-plugin включает * .properties на корневом уровне zip

plugins.xml:

<?xml version="1.0"?> 
<assembly> 
    <id>release</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
      <fileSet> 
       <directory>${project.build.directory}</directory> 
       <outputDirectory>/</outputDirectory> 
       <includes> 
        <include>*.properties</include> 
       </includes> 
      </fileSet> 
    </fileSets> 
    <dependencySets> 
     <dependencySet> 
      <outputDirectory>/</outputDirectory> 
      <useProjectArtifact>true</useProjectArtifact> 
      <useTransitiveFiltering>true</useTransitiveFiltering> 
     </dependencySet> 
    </dependencySets> 
</assembly> 

ответ

1

Свойства, которые вы хотите включить в ваш ZIP находятся в каталоге src/main/resources источника вашего проекта. Поэтому элемент <fileSet> должен указывать на этот каталог.

${project.build.directory} - это каталог текущей сборки Maven, который по умолчанию target. Вы также можете указать на временный каталог, в котором Maven копирует все ресурсы во время сборки, но, если это возможно, предпочтительнее придерживаться постоянных данных.

Таким образом, вам просто нужно изменить <fileSet> элемент с:

<directory>src/main/resources</directory> 
+0

Почему это не работает без указания '' хотя? – krasnaya

+0

@krasnaya Потому что вам нужно сообщить плагину, какой файл искать. Это не похоже на maven-jar-plugin, который по умолчанию упаковывает ресурсы в основную банку. maven-assembly-plugin был разработан таким образом, чтобы быть более гибким, поэтому вам нужно его правильно настроить. – Tunaki