记录一下最近的pom的相关设置,plugin的官方地址配置:http://maven.apache.org/plugins/index.html
看了网上说了很多例子,有很多不清楚,看一下官方的,会有新的发现:
1、修改plugin的配置之后,项目出现“x”的错误提示,看一下problems,说是project up to date之类,这个时候就是提示我们应该更新configure
右键工程-》maven4myeclipse-》update project configure,如图:
2、我们打包的时候,测试目录的处理,一种可以直接跳过;另外一种是设置忽略错误(相当于执行了我们的测试代码);最后一种是比较细腻的,可以设置XX方法不被执行,如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- 跳过测试 --> <skip>true</skip> <!-- 设置xx方法不被执行,**代表任意目录,*代表任意字符 <excludes> <exclude>**/*Test.java</exclude> </excludes> --> <!-- 测试代码错误忽略
<testFailureIgnore>true</testFailureIgnore>
--> </configuration> </plugin>
3、打包的时候不希望某些文件被打包进去,可以如下设置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <packagingExcludes>WEB-INF/classes/doc/**</packagingExcludes> </configuration> </plugin>
路径是target里面项目的路径,这里注意一下,为啥这么说呢?假如你的工程里面删除了某个文件,记得把target目录下的工程删除重新生成(clean),否则打包的文件还包含自此文件,war包是根据target下的工程打包的
4、如果在pom文件中定义了一些变量想在后面的.properties之类的文件中引用,则可以用resource的方式进行制定要扫描的路径,2中方式:
第一种
<project ...> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> ... </properties> .. </project>
第二种
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.1.0</version> <configuration> ... <encoding>UTF-8</encoding> ... </configuration> </plugin> </plugins> ... </build>
两种方式并存的话,会优先插件的方式(第二种)
有时候我们工程中有excel模板发布之后是乱码,就是因为类似这种二进制文件在资源目录下,他会去扫描所有的resource文件,二进制文件被破坏造成的,这时候可以exclude即可