Создание структуры выходного каталога с Maven - PullRequest
0 голосов
/ 10 марта 2012

У меня есть проект Java XXX

  • src / main / java
  • src / main / config
  • src / main / scripts

Мне нужна структура вывода, например

C: /target/XXX.jar C: / target / scripts

Я пытался использовать плагин ресурсов, но он упаковывает все внутри jar.

<build>
    <directory>target</directory>
    <outputDirectory>target/classes</outputDirectory>
    <finalName>${artifactId}-${version}</finalName>
    <sourceDirectory>src/main/java</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <resources>
        <resource>
            <directory>src/main/config</directory>
        </resource>
        <resource>
            <directory>src/main/scripts</directory>
            <targetPath>/scripts</targetPath>
        </resource>
    </resources>
</build>

1 Ответ

3 голосов
/ 10 марта 2012

Плагин maven-assembly-plugin отлично подходит для такого рода вещей. Вы можете создать дескриптор примерно так (в src / main / build / scripts.xml):

<assembly>
  <id>scripts</id>
  <formats>
    <format>dir</format>
  </formats>
  <fileSets>
    <fileSet>
      <outputDirectory>/scripts</outputDirectory>
      <includes>
        <include>*.*</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

Подключите это к вашей сборке так:

<build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assemble/scripts.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>copy-scripts</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
 </build>

Это свяжет выполнение сборки с фазой пакета сборки.

Этот метод даст вам гибкость, чтобы изменить способ упаковки сценариев в будущем или скопировать больше ресурсов в сборке.

...