如何通过Maven覆盖优先级较低的资源文件?

时间:2019-03-15 08:54:22

标签: maven maven-3 maven-release-plugin maven-resources-plugin

在我们的maven模块中,我们有多个资源文件夹

src/main/prod/sqlsrc/main/dev/sql。在产品中,我们有用于大量数据插入的生产脚本。激活配置文件 local 后,我们需要用 dev / sql 中的文件覆盖 prod / sql 目录中的某些文件。

这是配置

 <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>

当我们使用全新安装构建模块时,在目标目录中始终存在 prod / sql 中的脚本。你能告诉我我做错了什么吗?谢谢。

1 个答案:

答案 0 :(得分:1)

您使用Param( [parameter(mandatory=$true)][string]$i, $k ) $Get_Path = $k $Get_Path ---------- # $FB = Get-Content $i $FBSg = $FB.Substring(0, $FB.Length-3) $FB = $FB -split '(..)' -join '|' $Log = $FB Out-File $Get_Path "Log.txt" 进行构建吗?

如果是这种情况,默认情况下mvn clean install参数不允许运行<activeByDefault>true</activeByDefault>配置文件,则应使用local进行构建,它会在安装过程中加载mvn clean install -Plocal配置文件建立

或者,将local修改为始终使用pom.xml个人资料:

local