• maven-resources-plugin使用


    命令行中带参数指定${}变量值

    <build>

        <resources>

            <resource>

                <directory>src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

     

        <plugins>

            <!-- 资源文件拷贝插件,处理资源文件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-resources-plugin</artifactId>

                <version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

                <configuration>

                    <encoding>UTF-8</encoding>

                    <nonFilteredFileExtensions>

                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>

                        <nonFilteredFileExtension>swf</nonFilteredFileExtension>

                    </nonFilteredFileExtensions>

                </configuration>

            </plugin>

     

        </plugins>

    </build>

    Hello ${name}

    jest.urls=${name}

    (1)   执行mvn resources:resources -Dname="world"

    è

    Hello world

    jest.urls=world

    (2)   执行mvn install -Dname="world"

    è

    Hello world

    jest.urls=world

    Properties标签中指定${}变量值

    <properties>

        <name>my testname</name>

    </properties>

     

    <build>

        <resources>

            <resource>

                <directory>src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

     

        <plugins>

            <!-- 资源文件拷贝插件,处理资源文件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-resources-plugin</artifactId>

                <version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

                <configuration>

                    <encoding>UTF-8</encoding>

                    <nonFilteredFileExtensions>

                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>

                        <nonFilteredFileExtension>swf</nonFilteredFileExtension>

                    </nonFilteredFileExtensions>

                </configuration>

            </plugin>

     

        </plugins>

    </build>

    (1)   执行mvn resources:resources

    è

    Hello my test name

    jest.urls=my testname

    (2)   执行mvn install

    è

    Hello my test name

    jest.urls=my testname

    properties文件中用<filter>标签过滤

    <build>

        <resources>

            <resource>

                <directory>src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

       

        <filters>

            <filter>src/main/resources/my-filter-values.properties</filter>

        </filters>

     

        <plugins>

            <!-- 资源文件拷贝插件,处理资源文件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-resources-plugin</artifactId>

                <version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

                <configuration>

                    <encoding>UTF-8</encoding>

                    <nonFilteredFileExtensions>

                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>

                        <nonFilteredFileExtension>swf</nonFilteredFileExtension>

                    </nonFilteredFileExtensions>

                </configuration>

            </plugin>

     

        </plugins>

    </build>

    my-filter-values.properties

    name=mytestingname

    (1)   执行mvn resources:resources

    è

    Hello my testingname

    jest.urls=my testingname

    (2)   执行mvn install

    è

    Hello my testingname

    jest.urls=my testingname

    使用copy-resources copy

    <build>

        <plugins>

          <plugin>

            <artifactId>maven-resources-plugin</artifactId>

            <version>3.1.0</version>

            <executions>

              <execution>

                <id>copy-resources</id>

                <!-- here the phase you need -->

                <phase>validate</phase>

                <goals>

                  <goal>copy-resources</goal>

                </goals>

                <configuration>

                  <outputDirectory>${basedir}/target/extra-resources</outputDirectory>

                  <resources>         

                    <resource>

                      <directory>src/main/resources</directory>

                      <filtering>true</filtering>

                    </resource>

                  </resources>             

                </configuration>           

              </execution>

            </executions>

          </plugin>

        </plugins>

    </build>

    (1)   执行mvn resources:resources

    è

    Hello my testingname

    jest.urls=my testingname

    排除文件

    <project>

      ...

      <name>MyResources Plugin Practice Project</name>

      ...

      <build>

       ...

        <resources>

         <resource>

           <directory>src/my-resources</directory>

           <includes>

             <include>**/*.txt</include>

           </includes>

           <excludes>

             <exclude>**/*test*.*</exclude>

           </excludes>

         </resource>

         ...

        </resources>

       ...

      </build>

      ...

    </project>

    排除二进制文件

    <project>

      ...

      <build>

        <plugins>

          <plugin>

            <groupId>org.apache.maven.plugins</groupId>

            <artifactId>maven-resources-plugin</artifactId>

            <version>3.1.0</version>

            <configuration>

              ...

              <nonFilteredFileExtensions>

                <nonFilteredFileExtension>pdf</nonFilteredFileExtension>

                <nonFilteredFileExtension>swf</nonFilteredFileExtension>

              </nonFilteredFileExtensions>

              ...

            </configuration>

          </plugin>

        </plugins>

        ...

      </build>

      ...

    </project>

    禁止过滤  使用<escapeString>

    <properties>

        <name>my test name</name>

    </properties>

     

    <build>

        <resources>

            <resource>

                <directory>src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

     

        <plugins>

            <!-- 资源文件拷贝插件,处理资源文件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-resources-plugin</artifactId>

                <version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

                <configuration>

                    <escapeString></escapeString>

                </configuration>

            </plugin>

     

        </plugins>

    </build>

    指定, 说明${}的è${},其它照样替换

    Hello${name}

    jest.urls=${name}

    (1)   执行mvn resources:resources

    è

    Hello ${name}

    jest.urls=my testname

    (2)   执行mvn install

    è

    Hello ${name}

    jest.urls=my testname

    根据id在不同环境下打对应参数

    <build>

        <resources>

            <resource>

                <directory>src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

     

        <plugins>

            <!-- 资源文件拷贝插件,处理资源文件 -->

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-resources-plugin</artifactId>

                <version>3.0.1</version><!--$NO-MVN-MAN-VER$ -->

                <configuration>

                    <escapeString></escapeString>

                </configuration>

            </plugin>

     

        </plugins>

    </build>

     

    <profiles>

        <profile>

            <id>dev</id>

            <properties>

                <jest.urls>http://n2:9200,http://n4:9200</jest.urls>

            </properties>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

        </profile>

     

        <profile>

            <id>production</id>

            <properties>

                <jest.urls>http://192.168.3.241:9200,http://192.168.3.242:9200</jest.urls>

            </properties>

        </profile>

    </profiles>

    mvn clean package-DskipTests -Pdev

    è

    Hello${jest.urls}

    jest.urls=http://n2:9200,http://n4:9200

    mvn clean package-DskipTests -Pproduction

    è

    Hello${jest.urls}

    jest.urls=http://192.168.3.241:9200,http://192.168.3.242:9200

    自定义过滤器 Custom resources filters

    With version 2.5 you are now able to build your own customresources filter(s).

    Your custom resources filter classes must implements org.apache.maven.shared.filtering.MavenResourcesFiltering.

    CustomResources Filter Implementation

    Your custom resources filter classes must be marked as aPlexus Component. Below a sample with a roleHint itFilter.

    1.  /**
    2.   * @plexus.component role="org.apache.maven.shared.filtering.MavenResourcesFiltering" 
    3.   *                   role-hint="itFilter"
    4.   */
    5.  public class ItFilter
    6.      implements MavenResourcesFiltering

    Then you must activate in your build the mojo which willscan javadoc annotations to transform thoses to plexus component metadata.

    1.    <plugin>
    2.      <groupId>org.codehaus.plexus</groupId>
    3.      <artifactId>plexus-maven-plugin</artifactId>
    4.      <version>1.3.4</version>
    5.      <executions>
    6.        <execution>
    7.          <goals>
    8.            <goal>descriptor</goal>
    9.          </goals>
    10.      </execution>
    11.    </executions>
    12.  </plugin>

    Dependencydeclaration

    Your classes must be available in the maven-resources-pluginclasspath, this can be done with adding your artifact to the plugindependencies.

    1.  <project>
    2.    ...
    3.    <build>
    4.      <plugins>
    5.        <plugin>
    6.          <groupId>org.apache.maven.plugins</groupId>
    7.          <artifactId>maven-resources-plugin</artifactId>
    8.          <version>3.1.0</version>
    9.          <configuration>
    10.          ...
    11.        </configuration>
    12.        <dependencies>
    13.          <dependency>
    14.            <groupId>custom resources filters artifact groupId</groupId>
    15.            <artifactId>custom resources filters artifact artifactId</artifactId>
    16.            <version>custom resources filters artifact version</version>
    17.          </dependency>
    18.        </dependencies>
    19.      </plugin>
    20.    </plugins>
    21.    ...
    22.  </build>
    23.  ...
    24.</project>

    Useof your Custom Resource Filter with the maven-resources-plugin

    You must now declare you custom filter in the plugin.mavenFilteringHint must respect same syntax as your Plexus Component roleHint.

    1.    <plugin>
    2.      <groupId>org.apache.maven.plugins</groupId>
    3.      <artifactId>maven-resources-plugin</artifactId>
    4.      <version>3.1.0</version>
    5.      <configuration>
    6.        ...
    7.        <mavenFilteringHints>
    8.          <mavenFilteringHint>itFilter</mavenFilteringHint>
    9.        </mavenFilteringHints>
    10.     </configuration>
    11.     ...
    12.   </configuration>
    13. </plugin>
  • 相关阅读:
    springboot启动加载自定义插件
    sql记录
    集成WebMvcConfigurationSupport后,swagger3.0页面404无法访问 heamin
    [HTML/CSS] 超炫Loading动画
    [HTML/CSS] 简单的Menu图标
    Mysql笔记
    性能指标
    Select IO多路复用。
    Java垃圾回收
    JAVAAQS(AbstractQueuedSynchronizer)
  • 原文地址:https://www.cnblogs.com/xiang--liu/p/9710232.html
Copyright © 2020-2023  润新知