1

1.插件简介

build-helper-maven-plugin 是Maven 开源插件生态圈中org.codehaus.mojo 这个分组中的,这个分组是次要分组(二级分组);一级分组是org.apache.maven.plugins这一组。
Maven项目的约定
Maven默认只允许指定一个主[Java](http://lib.csdn.net/base/javase "Java SE知识库")代码目录和一个[测试](http://lib.csdn.net/base/softwaretest "软件测试知识库")Java代码目录。 
  1. 虽然这其实是个应当尽量遵守的约定,但偶尔你还是会希望能够指定多个源码目录(例如为了应对遗留项目),build-helper-maven-plugin的add-source目标就是服务于这个目的,通常它被绑定到默认生命周期的generate-sources阶段以添加额外的源码目录。需要强调的是,这种做法还是不推荐的,因为它破坏了 Maven的约定,而且可能会遇到其他严格遵守约定的插件工具无法正确识别额外的源码目录。
  2. build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。
截止到目前,最新版本为1.8
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
</plugin>

该插件提供了多个目标,包括设置主源码目录、测试源码目录、主资源文件目录、测试资源文件目录等。
以下简单说一下主资源文件目录、主源码目录的配置,其他设置大同小异,不再一一讲述。

配置实例

① 添加额外的源码路径

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                //示例如下
                 <source>src/java/main</source>
                 <source>../usermng-api/src/main/java</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

实例如下图所示:

可以看到打包usermng-springapi时属于usermng-api的com.wframe.*也打包进来了。

② 添加额外的测试源码路径

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-test-source</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>some directory</source>
                ...
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

③ 添加额外的资源文件路径

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <id>add-resource</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>add-resource</goal>
            </goals>
            <configuration>
              <resources>
                <resource>
                  <directory>src/my-resources</directory>
                  <targetPath>my-resources</targetPath>
                  <excludes>
                    <exclude>**/junk/**</exclude>
                  </excludes>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

添加额外的测试资源文件路径使用方式同上,只是修改goal为add-test-resource。

更多使用参考官网:https://www.mojohaus.org/buil...


逐梦小生
222 声望249 粉丝