Отфильтрованный выполнимый жирный.jar в maven с плагином maven-assembly-

В настоящее время я перемещаю небольшой проект в Maven, и у меня возникли некоторые проблемы.

Установка выглядит следующим образом

Где файл настроек используется в моей папке ресурсов для запуска приложения в Eclipse. Но когда я создаю толстую банку, файл настроек упаковывается в боковую банку. Я хочу отфильтровать файл настроек так, чтобы он находился за пределами jar (я понимаю, что это делает файл хрупким, но это из-за дизайна), и все же он доступен для приложения из той же папки, что и jar. Я достиг этого с помощью jar-файла Eclipse и Ant-файла. Но я не могу заставить его работать с Maven. Любое ваше понимание было бы очень полезно.

Ее примеры моего плагина и файла фильтра. Любые идеи по этому поводу были бы великолепны, так как это сводило меня с ума

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>3.1.0</version>
  <configuration>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <filters>
      <filter>src/assambly/filter.properties</filter>
    </filters>
    <archive>
      <manifest>
        <mainClass>ie.business.project.artifact</mainClass>
        <addClasspath>true</addClasspath>
      </manifest>
    </archive>
  </configuration>
  <executions>
    <execution>
      <id>make-assembly</id> <!-- this is used for inheritance merges -->
      <phase>package</phase> <!-- bind to the packaging phase -->
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>

и мой фильтр

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 
http://maven.apache.org/xsd/assembly-2.0.0.xsd">
  <id>distribution</id>
  <formats>
    <format>jar</format>
  </formats> 
  <files>
    <file>
      <source>settings.ini</source>
      <outputDirectory>/</outputDirectory>
      <filtered>true</filtered>
    </file>
  </files> 
</assembly>

2 ответа

Так что я устал от чего-то другого. Если я определю исключение в своем jar-плагине в дополнение к использованию maven-Assemblyy, доза файла настроек не будет в конечном итоге в жировой банке. Я не уверен, что это правильный способ сделать это, но это сработало.

Пожалуйста, дайте мне знать, если есть лучший способ сделать это.

Я добавил следующий плагин к моей поме

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
       <excludes>
          <exclude>setting.ini</exclude>
       </excludes>
    </configuration>
</plugin>

Похоже, вы не используете плагин сборки, указывающий на сборку в вашем вопросе. Если вы посмотрите на конфигурацию плагина, которую вы используете:

<descriptorRefs>
  <descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>

На самом деле вы должны указывать на относительный путь файла сборки, например:

<configuration>
    <descriptors>
        <descriptor>src/assembly/assembly.xml</descriptor>
    </descriptors>
</configuration>

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

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
  <id>jar-with-dependencies</id>
  <formats>
    <format>jar</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${basedir}</directory>
      <excludes>
        <exclude>settings.ini</exclude>
      </excludes>
    </fileSet>
  </fileSets>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <outputDirectory>/</outputDirectory>
      <useProjectArtifact>true</useProjectArtifact>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>
Другие вопросы по тегам