maven占位符
maven占位符默认是${}
也可以自己指定。
pom.xml配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>$[*]</delimiter>
</delimiters>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
如果applicationContext.xml配置文件里面配置如下:
<bean id="senderKafka" class="com.*.epp.kafka.SendKafka">
<property name="metadataBookerList" value="$[metadata.broker.list]" />
<property name="requestRequiredAcks" value="${request.required.acks}" />
<property name="serializerClass" value="${serializer.class}" />
</bean>
运行build.xml之后,上面配置信息变成
<bean id="senderKafka" class="com.*.epp.kafka.SendKafka">
<property name="metadataBookerList" value="10.27.25.161:9092,10.27.25.163:9093" />
<property name="requestRequiredAcks" value="${request.required.acks}" />
<property name="serializerClass" value="${serializer.class}" />
</bean>
$[]直接由maven处理了,
上面的${request.required.acks}和${serializer.class}会由spring读取application.properties来赋值。
使用 Maven 时,工作主要是通过插件来执行的。在构建周期中,Maven 2 通过遵循一系列定义好的阶段,将这些插件协调起来
maven远程仓库和镜像区别
远程仓库是在POM文件中配置,远程仓库包括中央仓库(maven源代码中配置的默认的),私服(局域网内架设),其他远程公共库(比如java.net maven库和JBoss Maven库)
镜像是在setting.xml文件中配置。使用镜像替代中央仓库
https://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html
这个链接很好的介绍了maven定界符(占位符)的使用
http://blog.sina.com.cn/s/blog_a49b04f60101c2gr.html