Maven Resources插件中 Filter用处

 

 

查看官网的例子,pom中resources可以用 ${variables}来引用变量。

例子:http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

现在我们创建一个maven project,试验一下。

首先,我们在src/main/resources/下创建一个hello.txt

 

1. 在pom文件中加入resources插件。

<directory>标签指定了项目中要处理的目录。maven打包时会扫描这个目录。

<project>
  ...
  <name>SSH Demo Project Project</name>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

运行一下maven install后,在target/classes目录下出现了hello.txt

打开后发现,hello.txt的内容还是${name},和resources目录下的hello.txt内容一致。

 

2. 修改pom文件,在<directory>下加上一<filter>标签。

<resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
</resource>

运行 maven clean,再次maven install.

这时查看target/classes目录下的hello.txt,内容变成了

 

当然,再次install没有什么必要,因为只有改了资源文件,所以也可以在命令行中直接运行以下命令

mvn resources:resources

 

3. 还可以在maven命令行运行,用 "-D" option直接更改变量名。

mvn resources:resources -Dname="world"

运行cmd,切换到project的pom文件所在目录,运行上述maven命令。

 

查看target\classes下面的hello.txt

顺利更改!

 

4. 在src/main/resources/新建一个world.txt文件,在pom文件中加上<include>标签,

<resources>
  <resource>   <directory>src/main/resources</directory> <filtering>true</filtering>   <includes>   <include>hello.txt</include> </includes> </resource> </resources>

运行

mvn resources:resources

target下面只有一个hello.txt文件

而且,hello.txt进行了过滤filter,进行了变量替换。

 

5. 再次pom添加<resources>  

 <resources>
  <resource>
  <directory>src/main/resources</directory>   <filtering>true</filtering>   <includes>   <include>hello.txt</include>   </includes> </resource> <!-- Include other files as resources files. --> <resource>   <directory>src/main/resources</directory>
    <filtering>false</filtering> <excludes> <exclude>world.txt</exclude> </excludes> </resource> </resources>

 运行mvn resources:resources

在target下面只有hello.txt文件。

 6. 修改pom文件

 <resources>
  <resource>
     <directory>src/main/resources</directory>
       <filtering>true</filtering>
      <includes>
         <include>hello.txt</include>
      </includes>
    </resource>
    <!-- Include other files as resources files. -->
    <resource>
      <directory>src/main/resources</directory>
    <filtering>false</filtering>
        <excludes>
            <exclude>hello.txt</exclude>
        </excludes>
    </resource>            
</resources>

运行mvn resources:resources

在target下面只有hello.txt和world.txt两个文件。

其中,world.txt保持原样,里面的${name}没有被替换掉。

而hello.txt被过滤,内容为

Hello SSH Demo Project

 

posted on 2019-03-12 09:15  咸肉菜饭  阅读(1091)  评论(0编辑  收藏  举报

导航