maven-jar-plugin не включает файл .gitignore - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь упаковать приложение в файл jar с помощью maven.Каким-то образом все файлы, кроме .gitignore, добавляются в jar-файл.

Почему этот файл пропускается и как его отключить?

Даже если я пытаюсь включить его, как показано ниже, файл includeигнорируется, и файл jar остается пустым.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
    <includes>
      <include>**/.gitignore</include>
    </includes>
  </configuration>
</plugin>
  • версия maven-jar-plugin: 3.1.0
  • версия maven: 3.5.2

Ответы [ 3 ]

2 голосов
/ 04 апреля 2019

Во-первых, использование примеров проектов jar-файлов удивительно. Я бы никогда не ожидал иметь примеры проектов в файле .jar. Назначение файлов jar - это нечто иное. Я бы предложил использовать что-то более подходящее, например .zip или .tar.gz и т. Д. (Это может быть достигнуто с помощью maven-assembly-plugin ). Это предотвратит случайное нецелевое использование.

Помимо всей проблемы, основано на определении ресурсов, которые обычно копируются из src/main/resources в каталог target/classes. Это делается с помощью maven-resources-plugin.

Плагин maven-resources-plugin имеет некоторую конфигурацию, которая исключает некоторые файлы, которые обычно не копируются , которые содержат .gitignore. Таким образом, это означает, что простое помещение файла .gitignore в src/main/resources не даст ожидаемого результата, и использование конфигурации <includes>..</includes> также не поможет.

Это означает, что вам нужно изменить стандартную конфигурацию maven-resources-plugin через секцию pluginManagement, как показано ниже:

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.1.0</version>
          <configuration>
            <addDefaultExcludes>false</addDefaultExcludes>
          </configuration>
        </plugin>

Чем файл .gitignore будет скопирован и должен быть упакован в полученный файл jar (что я бы не рекомендовал делать).

2 голосов
/ 04 апреля 2019

Я попробовал это с src/main/resources/.gitignore, и оно работало со значением по умолчанию maven-jar-plugin:2.4, то есть .gitignore было упаковано в JAR.

Затем я использовал maven-jar-plugin:3.1.0, который вы упомянули, и он сделал не работает, как вы описываете.

Оказалось, что это не работает начиная с v2.5.

0 голосов
/ 21 мая 2019

У меня такая же проблема с папкой .metadata в папке target/classes.Папка .metadata не включена в архив jar.Для меня это не работает с maven-jar-plugin:2.4 и выше.С версией 2.3 она работает.

Я представил этот вопрос: https://issues.apache.org/jira/browse/MJAR-265

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...