Автоматически перемещать jarfiles из maven target в другой каталог - PullRequest
0 голосов
/ 07 ноября 2018

Я пытался использовать этот плагин для перемещения jarfiles из цели maven во внешний каталог после сборки:

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
      <execution>
        <id>copy-files-on-build</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${basedir}/../jarfiles</outputDirectory>
          <resources>
            <resource>
              <directory>${build.directory}</directory>
              <include>*.jar</include>
              <filtering>false</filtering>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>

Но он работает только со второй сборки и не копирует ничего при первой сборке.

Я пытался изменить <phase> на все install, deploy, post-install, post-deploy и т. Д., Но так и не получил файлы для копирования на первом mvn install в этом проекте (т.е. ./target dir еще не создан.)

Как сделать так, чтобы банки копировались при каждой сборке (и чтобы они были самыми современными, отражающими текущий источник)?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Сначала я попытался использовать это:

  <plugin>
    <!-- copy jarfiles straight to ../server/plugins so we can test
         the plugin without having to move them ourselves -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.1</version>
    <configuration>
      <outputDirectory>${basedir}/../server/plugins</outputDirectory>
    </configuration>
  </plugin>

Но это не сработало для jar-с-зависимостями.

Так что теперь я использую это:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-antrun-plugin</artifactId>
  <version>1.8</version>
  <executions>
    <execution>
      <phase>install</phase>
      <configuration>
        <target>
          <copy file="${project.build.directory}/${project.artifactId}-${project.version}.jar" todir="${project.basedir}/../jarfiles" />
        </target>
      </configuration>
      <goals>
        <goal>run</goal>
      </goals>
    </execution>
  </executions>
</plugin>
0 голосов
/ 07 ноября 2018

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

Если вы не можете заставить это работать, вы все равно можете использовать старые добрые цели копирования Ant через плагин maven antrun

https://stackoverflow.com/a/694175/927493

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