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>
Другие вопросы по тегам