Вопрос по java, maven – Заставить maven копировать дополнительные файлы внутри jar-сборки (не ресурсы, а любой файл внутри любого пакета)?

6

У меня есть пакет org.myapp.mypackage с некоторыми файлами ruby (* .rb), и мне нужно включить их в сгенерированный файл сборкиin the same package вместе с файлами классов Java. Как мне сказать моему другу Maven сделать это?

OBS: No, I cannot copy to anywhere else, but thanks for suggesting. :)

Ваш Ответ

3   ответа
-1

они должны быть правильно упакованы в банку. Чтобы поместить файлы * .rb, создайте ту же структуру dir в папке src / main / resources.

7

<build> немного POM:

<resources>
  <resource>
    <directory>src/main/resources</directory>
  </resource>
  <resource>
    <filtering>false</filtering>
    <directory>src/main/java</directory>
    <includes>
      <include>*.rb</include>
    </includes>
    <excludes>
      <exclude>**/*.java</exclude>
    </excludes>
  </resource>
</resources>

Или другой ответ (создайте ту же структуру пакета вsrc/main/resources) тоже будет работать.

2

правильно ли я понял проблему, но упакованы ли ваши Ruby-файлы maven и объявленный как зависимость, вы можете использоватьплагин тени включить содержимое в полученный файл JAR:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>1.4</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <artifactSet>
                    <includes>
                        <include>org.myapp.mypackage:mypackage</include>
                    </includes>
                </artifactSet>
                <filters>
                    <filter>
                        <artifact>org.myapp.mypackage:mypackage</artifact>
                        <includes>
                            <include>org/my/package/*.rb</include>
                        </includes>
                    </filter>
                </filters>
            </configuration>
        </execution>
    </executions>
</plugin>

Похожие вопросы