Как перезаписать файл ресурсов с меньшим приоритетом через Maven? - PullRequest
2 голосов
/ 15 марта 2019

в нашем модуле maven у нас есть несколько папок ресурсов

src/main/prod/sql и src/main/dev/sql. В prod у нас есть скрипты для производства, где много вставок данных. Нам нужно перезаписать некоторые файлы в каталоге prod / sql файлами в dev / sql , когда активирован профиль local .

Вот конфигурация

 <profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.1.0</version>
                    <executions>
                        <execution>
                            <id>copy-files</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <overwrite>true</overwrite>
                                <outputDirectory>${basedir}/target/classes/sql</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/main/dev/</directory>
                                        <filtering>true</filtering>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>

Когда мы собираем modile с чистой установкой, в целевой директории всегда есть скрипты из prod / sql . Можете ли вы сказать мне, что я делаю не так? Спасибо.

1 Ответ

1 голос
/ 15 марта 2019

Строите ли вы с помощью mvn clean install?

Если это так, параметр <activeByDefault>true</activeByDefault> не позволяет запускать профиль local по умолчанию, вам следует создать с помощью mvn clean install -Plocal, который загружаетпрофиль local во время сборки

Либо измените pom.xml, чтобы всегда использовать профиль local:

<profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
...
...