maven资源文件引用

资源文件引用:
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>

猜你喜欢

转载自hck.iteye.com/blog/1931335