Maven - maven-remote-resources-plugin, не включающий все каталоги ресурсов
У меня есть проект с несколькими каталогами ресурсов:
src/main/resources
src/main/generator
src/main/generator2
Я объявляю эти каталоги ресурсов следующим образом:
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${basedir}/src/main/generator</directory>
</resource>
<resource>
<directory>${basedir}/src/main/generator2</directory>
</resource>
</resources>
....
</build>
я использую maven-remote-resources-plugin
сделать эти ресурсы доступными в других проектах. Я использую этот плагин следующим образом:
<build>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${basedir}/src/main/generator</directory>
</resource>
<resource>
<directory>${basedir}/src/main/generator2</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
После сборки все ресурсы из всех трех каталогов ресурсов находятся в JAR. Замечательно. Тем не мение, remote-resources.xml
содержит только ресурсы из src/main/resources
, Как я могу это исправить?
Я пытался поиграть с resourcesDirectory
свойство конфигурации, но, кажется, я могу установить только один каталог ресурсов? Я мог бы установить это свойство следующим образом, но это выглядит как уродливый хак:
<configuration>
<resourcesDirectory>${basedir}/src/main</resourcesDirectory>
<includes>
<include>**/*</include>
</includes>
</configuration>
1 ответ
Не уверен на 100%, но вы можете попробовать что-то вроде:
<configuration>
<resourcesDirectory>${basedir}/src/main</resourcesDirectory>
<includes>
<include>resources/**/*</include>
<include>generator/**/*</include>
<include>generator2/**/*</include>
</includes>
</configuration>
или попробуйте разные исполнения:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>bundle-resources</id>
<goals>
<goal>bundle</goal>
</goals>
</execution>
<execution>
<id>bundle-generator</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<resourcesDirectory>${basedir}/src/main/generator</resourcesDirectory>
</configuration>
</execution>
<execution>
<id>bundle-generator2</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<resourcesDirectory>${basedir}/src/main/generator2</resourcesDirectory>
</configuration>
</execution>
</executions>
</plugin>
но я не уверен, что remote-resources.xml будет объединен или перезаписан.
Вы также можете попробовать запустить плагин на более позднем этапе в выходном каталоге (подготовьте пакет, чтобы быть безопасным, но процессы-источники могут работать так же, как я думаю, ресурсы: ресурсы будут выполняться первыми):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>bundle-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<resourcesDirectory>${project.build.outputDirectory}</resourcesDirectory>
<includes>
<include>file1</include>
<include>file2</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>