1 导入maven工程时遇到:maven-dependency-plugin (goals "copy-dependencies", "unpack") is not support
解决办法,在build中加入pluginManagement,然后Update project configuration即可:
....
org.eclipse.m2elifecycle-mapping1.0.0org.apache.maven.pluginsmaven-dependency-plugin[2.0,)
...
2 升级maven工程及子模块的版本号
解决办法:先把parent project更新到指定version,然后再更新子模块,让其与父模块的版本号保持一致:
- mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
- mvn -N versions:update-child-modules
- 执行后maven会将pom.xml保留一个备份:pom.xm.versionsBackup
- 确认升级版本无问题后,执行mvn versions:commit 确认升级,去掉备份的pom.xml.versionsBackup
3 多个module间的test解除依赖关系
project下多个module时,有些module的test有时会依赖与其他module的test(初始化、test-context等),结果发现虽然compile不报错,但在mvn package时,去报告对应的依赖test class不可见。
原因:一般mvn 打包不会把test打入jar中,这样自然无法看见。
4 unit test中测试异常
对于期望在test中出现的合理异常,junit4.7后有新的办法:
1)使用@Test 注解
@Test(expected=ServerUnavailableException.class)
不足:无法控制异常出现的位置;
2)使用ExpectedException,更佳方案
@Rule
public ExpectedException expectedException = ExpectedException.none();
@Test
public void testGetClient(){
expectedException.expect(ServerUnavailableException.class);
mcClientFacotry.updateServerStatus(ServerStatus.unavailable);
mcClientFacotry.getClient();
}