MVN 使用问题及解决办法集锦

1 当你在pom里面定义了一堆properties时,发现你需要把它们分离,用专属properties文件来存储时。properties-maven-plugin这上plugin决对能满足了。

请看定义片断:


org.codehaus.mojo
properties-maven-plugin
1.0-alpha-2


pre-clean-config
pre-clean

read-project-properties



config.properties




initialize-config
initialize

read-project-properties



config.properties




 

注意这里定义了两个phase, 分别用ID进行了区分。这里的应用场景是这样的,我在执行mvn clean, mvn install时,都需要读取properties文件里面的值,但是clean,install它们的生命周期是分开的,所以针对这种情况需要单独定义。stackflow上有人也碰到了这个问题,http://stackoverflow.com/questions/9912632/maven-reading-a-property-from-an-external-properties-file.

2 JAVA程序直接调用TOMCAT,进行程序调试。
之前同事推荐使用jetty进行WEB程序调式,经过我的使用,感觉不太理想。它的实现方式主要是要引入Jetty运行时的依赖,然后再需要手动写一个类去启动jetty 。其间碰到些莫名其妙的问题,毕竟它不是一个非常专业的WEB容器,对页面解析这一块还是没有标准的tomcat,resin友好。所以,我决定采用常用的tomcat来进行集成(0代码),步骤如下:
2.1首先增加一个MVN环境下面TOMCAT调试的环境变量
MAVEN_OPTS=Xdebug -Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=n
2.2修改POM,增加plugin的支持


org.codehaus.mojo
tomcat-maven-plugin
1.1

/


这里,你可以自定义端口,ContextPath等变量
2.3右键POM,配置一个DEBUG的Run Configuractions,指定你的工作区间,JRE等等,运行即可。

3 中文配置文件自动转码utf-8


                org.codehaus.mojo
                native2ascii-maven-plugin
                
                    
                        
                            native2ascii
                        
                        
                        
                            UTF8
                            
                                messages/messages.properties
                                messages/messages_zh_CN.properties
                            
                        
                    

                

            

4 mvn动态选择XML文件
有时候由于多环境的问题,程序在启动的时候,在选择加载XML的时可以运态选择。之前一直有了解MVN可以跟ANT结合起来,处理这种类似的动态需求。
现在实际操作一下,首先有这两个配置文件

image.png

里面redis一个是单机的配置,一个是集群的配置。在POM之中定义ANT的调用及变量redispath
image.png

这个变量在你进行构建的时候去指定,比如这个命令
mvn clean install -Dmaven.test.skip=true -P product-test -Dmaven.redispath=redis-cluster.xml
启用集群配置,再看看ANT的文件代码片断
image.png

这里的逻辑比较简单,如果启用就执行对应的文件操作,否则就删除另外的文件。这样就达到了动态拿取配置XML的目的。
That's it,so easy!(不定时更新)

你可能感兴趣的:(MVN 使用问题及解决办法集锦)