标签+maven-resources-plugin插件的作用

字体大小: 中小 标准 ->行高大小: 标准

构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

1)src/main/java和src/test/java目录下的所有*.java文件分别在comile和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录中的其他文件都会被忽略掉。

2)src/main/resouces和src/test/resources这两个目录中的文件也会分别被复制到target/classes和target/test-classes目录中。

但是会出现如下情况

1)放在src/main/java下的xml文件,比如mybatis中的mapper.xml,是不会被默认加载的。

2)想要排除默认加载的某些文件,比如我不想加载init.json文件

这个时候就要用到<resource/>标签和maven-resources-plugin插件了,用法如下

resource的filtering属性用来表示资源文件中的占位符是否需要被替换,true为需要替换。这个不写的话就等着抓脑袋吧。。。

比如xml文件中的${jdbc.url},如果设置为false,就无法替换这些占位符。

<build>
		<!-- 通过resource标签指定加载配置文件 -->
		<resources>
			<resource>
				<directory>src/main/java</directory>  <!-- 要加载的文件在哪个文件夹 -->                 
                                <filtering>true</filtering> 
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
                                <filtering>true</filtering> 
				<includes>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
					<!-- <include>**/*.json</include> -->
				</includes>
				<excludes>
					<exclude>**/*.json</exclude> <!-- 排除掉init.json文件-->
				</excludes>
			</resource>
		</resources>
</build>


<plugins>标签中新增



				<!-- resource插件 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>2.6</version>
				</plugin>

这些代码写在哪个工程里,就需要对哪个工程clean install。由于我将它们放在druid-parent工程中,所以对druid-parent进行clean install。

打开target目录,可以发现init.json被排除了。而properties和xml被成功加载。


此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70872.html