1、maven默认系统的资源文件在src/main/resources下,在执行mvn process-resources的时候会将此文件夹下的东西全部拷贝到classes文件夹下,同时对文件中含有${}中的值进行引用赋值
以下操作基于如下命令行的操作:mvn archetype:create -DgroupId=com.test -DartifactId=my-app -Dversion=1.0 -DpackageName=com.test-->cd my-app
2、在resources文件夹下的资源文件如何引用pom.xml以及settings.xml里面的东西
创建资源文件:src/main/resources/application.properties文件,在下面添加如下引用
${pom.name} 将引用pom.xml中的<name>my-app</name>
${pom.version} 将引用pom.xml中的version>1.0-SNAPSHOT</version>
${settings.localRepository} 将引用settings.xml中的<localRepository>F:\repository</localRepository>
同时在pom.xml中添加如下代码:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
执行 mvn process-resources,然后查看target/classes/application.properties的内容
3、在resources文件夹下的资源文件如何引用外部属性文件中的配置:
创建src/main/filters/filter.properties,内容如下:
tools=maven
在src/main/resources/application.properties资源文件中引用:
message=${tools}
同时在pom.xml中添加如下配置:
<build> <filters> <filter>src/main/filters/filter.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
执行 mvn process-resources,然后查看target/classes/application.properties的内容
4、如果不想增加外部资源文件,可以将所需要的属性添加到pom.xml文件中,然后在resources文件夹下的资源文件引用
pom.xml中添加如下:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> <properties> <my.filter>filter</my.filter> </properties>
在src/main/resources/application.properties资源文件中引用:
${my.filter}
执行 mvn process-resources,然后查看target/classes/application.properties的内容
5、在resources文件夹下的资源文件如何通过命令行进行赋值:
在src/main/resources/application.properties资源文件中引用:
command.line.prop=${command.line.prop}
执行mvn process-resources "-Dcommand.line.prop=hello again",然后查看target/classes/application.properties的内容
<!-- profiles: 目前主要是对web项目中的静态资源进行过滤-->
<profiles> <profile> <id>dev</id> <activation> <activeByDefault>true</activeByDefault> </activation> <build> <filters> <filter>../${project.parent.artifactId}/vars/vars.dev.properties</filter> </filters> </build> </profile> <profile> <id>pre</id> <build> <filters> <filter>../${project.parent.artifactId}/vars/vars.pre.properties</filter> </filters> </build> </profile> <profile> <id>prod</id> <build> <filters> <filter>../${project.parent.artifactId}/vars/vars.prod.properties</filter> </filters> </build> </profile> </profiles>
build> <pluginManagement> <plugins> <!-- war plugin config: 对静态资源进行过滤,替换变量。 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>${project.artifactId}</warName> <webResources> <resource> <directory>src/main/webapp</directory> <filtering>true</filtering> <includes> <include>**/*.html</include> <include>**/*.js</include> <include>**/*.css</include> </includes> </resource> </webResources> </configuration> </plugin> </plugins> </pluginManagement> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <testResources> <testResource> <directory>${basedir}/src/test/resources</directory> </testResource> </testResources> </build>