修补多个目录中的多个文件

补丁插件可以配置为应用来自多个目录的补丁集。在下面的示例中,插件设置为应用错误修复目录中的所有补丁并进行优化(不会重新应用相同的补丁)以及增强目录中的所有补丁。如果您没有对项目源代码的提交访问权限但需要应用错误修复和增强补丁,则可能会出现这种情况。两个不同的补丁源目录仅作为可以配置的示例显示。

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-patch-plugin</artifactId>
        <version>1.2</version>
        <configuration>
          <targetDirectory>${moduleDirectory}</targetDirectory>
          <skipApplication>false</skipApplication>
        </configuration>
        <executions>
          <execution>
            <id>bugfix-patches</id>
            <configuration>
              <patchDirectory>src/main/patches/bugfix</patchDirectory>
              <patchTrackingFile>${project.build.directory}/optimization-files/bugfix/patches-applied.txt</patchTrackingFile>
              <naturalOrderProcessing>true</naturalOrderProcessing>
            </configuration>
            <phase>process-sources</phase>
            <goals>
              <goal>apply</goal>
            </goals>
          </execution>
          <execution>
            <id>enhancement-patches</id>
            <configuration>
              <patchDirectory>src/main/patches/enhancement</patchDirectory>
              <patchTrackingFile>${project.build.directory}/optimization-files/enhancement/patches-applied.txt</patchTrackingFile>
              <naturalOrderProcessing>true</naturalOrderProcessing>
            </configuration>
            <phase>process-sources</phase>
            <goals>
              <goal>apply</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    [...]
  </build>
  [...]
</project>