1.说明
在maven项目中,
src/main/java 目录
下的.java文件
,会在mvn compile
阶段进行编译,
并且,将编译输出的.class文件
复制到target/classes 目录
中,
但是,其他的非 .class 文件
将会被忽略。
因此,如果需要把 src 目录下的文件包放到 target/classes 目录,作为输出的 jar 一部分,就需要指定资源文件
位置。
2.具体的配置
2.1 关键的配置内容
需要在 build 标签中添加如下内容:
directory 标签 : 表示要配置的资源的目录
include 标签 : 表示包含哪些文件
**/ : 表示任意级目录
*.properties : 表示 properties 类型的文件(其他文件可以类比理解)
<!-- 配置资源目录 : -->
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include> <!-- **/ 表示目录的递归,即任意级的目录; -->
<include>**/*.xml</include>
<include>**/*.yaml</include>
</includes>
<!-- filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
2.2 完整的pom.xml样子
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 当前项目的坐标信息-->
<groupId>com.northcastle</groupId>
<artifactId>helloworld-maven-java</artifactId>
<version>1.0-SNAPSHOT</version>
<!--设置打包的类型为 jar 包-->
<packaging>jar</packaging>
<!-- 自定义的属性设置,可以自己进行配置和修改-->
<properties>
<!-- maven 编译代码使用的jdk版本 -->
<maven.compiler.source>1.8</maven.compiler.source>
<!-- maven 执行代码使用的jdk版本 -->
<maven.compiler.target>1.8</maven.compiler.target>
......
其他属性相关的配置
</properties>
<!-- 依赖中默认带有一个 junit 单元测试-->
<dependencies>
......
依赖包的配置
</dependencies>
<build>
......
其他的构建相关的配置
<!-- 配置资源目录(就是在这里进行配置) -->
<resources>
<resource>
<directory>src/main/java</directory><!--所在的目录-->
<includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yaml</include>
</includes>
<!-- filtering 选项 false 不启用过滤器, *.property 已经起到过滤的作用了 -->
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
3.进行编译测试
3.1 项目的目录结构
3.2 执行编译命令
$ mvn compile
3.3 编译之后的输出目录
对应源码目录的文件都复制下来了,
此时进行项目打包构建的时候也可以正常的将资源文件打包了。
4.完成
Congratulations!
You are one step closer to success!