build-helper-maven-plugin 简单讲解

/ maven / 没有评论 / 1214浏览

简介

官方文档

https://www.mojohaus.org/build-helper-maven-plugin/index.html

常用的Goals

名称说明
build-helper:add-source添加一个或者多个目录到POM.
build-helper:add-test-source添加测试目录到 POM.
build-helper:add-resource添加资源目录到POM.
build-helper:add-test-resource添加测试资源目录到POM.
build-helper:attach-artifact附加要安装和部署的其他部件。
build-helper:maven-version设置一个包含当前版本的 maven 的属性。
build-helper:regex-property通过将正则表达式替换规则应用于提供的值来设置属性。
build-helper:regex-properties通过将正则表达式替换规则应用于提供的值来设置属性.
build-helper:released-version解决本项目最新发布的版本.
build-helper:parse-version将版本解析为不同的属性.
build-helper:remove-project-artifact从本地存储库中删除项目的工件.
build-helper:reserve-network-port保留随机和未使用的网络端口列表.
build-helper:local-ip检索当前主机 IP 地址.
build-helper:hostname检索当前主机名.
build-helper:cpu-count检索可用 CPU 的数量.
build-helper:timestamp-property根据当前日期和时间设置属性.
build-helper:uptodate-property根据文件集的输出相对于其输入是否是最新的来设置属性.
build-helper:uptodate-properties根据多个文件集的输出相对于它们的输入是否是最新的来设置多个属性.
build-helper:rootlocation设置定义多模块构建的根文件夹的属性.

简单用法

<project>
 
  <build>
    <plugins>

 <!--独立打包-->
             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.1.RELEASE</version>
                <configuration>
                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

<!-- domain 打包进去-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>3.3.0</version>
        <executions>
          <execution>
            <!--id是必须的,常常和goals是一样的-->
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <!--在configuration中设置goals的具体属性-->
            <configuration>
              <!--这些熟悉可以通过文档获得-->
              <sources>
                <source>${basedir}/src/main/java</source>
                <source>${basedir}/src/main/domain</source>
                ...
              </sources>
            </configuration>
          </execution>
          <!--在比如下面的,可以获得当前时间-->
          <execution>
            <id>timestamp-property</id>
            <goals>
              <goal>timestamp-property</goal>
            </goals>
              <configuration>
                  <name>current.time</name>
                  <pattern>yyyyMMddHHmmss</pattern>
                  <timeZone>GMT+8</timeZone>
              </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

获得当前时间的那个,可以通过configuration的name在pom的其他地方通过${current.time}来引用当前时间