【发布时间】:2012-10-01 07:45:08
【问题描述】:
我在 CentOS 上运行 Jenkins 1.478,使用 Java 6、Maven 3.0.4、JUnit 4.8.1(Maven 项目中的依赖项)和 Sonar 3.2.1。我有我的 Jenkins Maven 2/3 作业设置以在完成后运行声纳(设置目标为“clean package -Pdev”)。该项目是一个包含 WAR 和 EAR 模块的多模块项目。但是,当插件的 Sonar 部分运行时,许多测试会因以下错误而死掉……
java.lang.NullPointerException
at java.util.Properties$LineReader.readLine(Properties.java:418)
at java.util.Properties.load0(Properties.java:337)
at java.util.Properties.load(Properties.java:325)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.loadmyprojectProps(AbstractHibernateDaoTest.java:252)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.setupMockEjbContainer(AbstractHibernateDaoTest.java:235)
at org.parentco.myco.client.test.AbstractHibernateDaoTest.setupBeforeClass(AbstractHibernateDaoTest.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
异常来自此代码块的最后一行...
final InputStream in = AbstractHibernateDaoTest.class.getClassLoader().getResourceAsStream("myproject.properties");
final Properties props = new Properties();
props.load(in);
测试在我工作的 Maven 部分运行完美。有问题的文件位于
./myclient-war/src/main/resources/myproject.properties
有人知道如何进一步解决此问题吗?我更愿意在 Sonar 中配置一些东西,而不是必须重组我的整个项目以适应 Sonar,但我愿意接受建议。
【问题讨论】:
-
您是否尝试过从您的计算机运行声纳插件?您应该能够从命令行传递配置,而无需更改 pom。
-
您可以在作业属性
sonar.verbose=true中为声纳指定调试标志。检查这是否提供了更多信息。
标签: maven junit jenkins classpath sonarqube