Maven-Resources-Plugin中的奇怪的NullPoInterException
-
25-10-2019 - |
题
每天大约两次,我们在构建中获得了nullpoInterException:
[06:44:23]: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources (default-resources) on project spring-lib: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources failed. NullPointerException -> [Help 1]
[06:44:23]: org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources (default-resources) on project spring-lib: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources failed.
[06:44:23]: at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
[06:44:23]: at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[06:44:23]: at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[06:44:23]: at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
[06:44:23]: at org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:167)
[06:44:23]: at org.apache.maven.lifecycle.internal.LifecycleThreadedBuilder$1.call(LifecycleThreadedBuilder.java:164)
[06:44:23]: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
[06:44:23]: at java.util.concurrent.FutureTask.run(FutureTask.java:138)
[06:44:23]: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
[06:44:23]: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
[06:44:23]: at java.util.concurrent.FutureTask.run(FutureTask.java:138)
[06:44:23]: at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[06:44:23]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[06:44:23]: at java.lang.Thread.run(Thread.java:619)
[06:44:23]: Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-resources of goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources failed.
[06:44:23]: at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
[06:44:23]: at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
[06:44:23]: ... 13 more
[06:44:23]: Caused by: java.lang.NullPointerException
[06:44:23]: at java.util.ArrayList.<init>(ArrayList.java:131)
[06:44:23]: at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filteredFileExtension(DefaultMavenResourcesFiltering.java:115)
[06:44:23]: at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:264)
[06:44:23]: at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:310)
[06:44:23]: at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
[06:44:23]: ... 14 more
这是随机的时间,下一个构建不会失败。
我已经谷歌搜索了这一失败,什么也没发现。我有这种直觉的感觉,这可能是由Maven-Resources-Plugin中的并发问题引起的。
我们以Maven-Resources-Plugin 2.4.3和2.5遇到了这个错误。我们的Maven版本为3.0.3。
我们使用以下参数执行团队构建:
Goals: install
Additional Maven command line parameters: -T 2C -e -P!releasex,integration
-Dmaven.test.failure.ignore=true -Dmaven.test.error.ignore=true
-Dmaven.test.haltafterfailure=false -Dmaven.junit.timeout=1000000
-DwarProject.packaging=jar
感谢任何解决此问题的帮助。
解决方案
尝试与 -X
并分析调试输出。这可能会有所帮助。至少对我而言,它经常做。
编辑:这是有问题的地点:
113 上市 布尔 filteredFileExtension( 细绳 fileName, 列表 userNonFilteredFileExtensions )
114 {
115 列表 nonFilteredFileExtensions = 新的 数组列表( getDefaultNonFilteredFileextensions() );
getDefault ..返回 null
. 。您是否以某种方式更改了非滤牌?因为默认情况下它们在这里填充:
63 // ------------------------------------------------
64 // Plexus lifecycle
65 // ------------------------------------------------
66 上市 空白 initialize()
67 扔 初始化Exception
68 {
69 // jpg,jpeg,gif,bmp,png
70 这个.defaultNonFilteredFileExtensions = 新的 数组列表( 5 );
71 这个.defaultNonFilteredFileExtensions.添加( "jpg" );
72 这个.defaultNonFilteredFileExtensions.添加( "jpeg" );
73 这个.defaultNonFilteredFileExtensions.添加( "gif" );
74 这个.defaultNonFilteredFileExtensions.添加( "bmp" );
75 这个.defaultNonFilteredFileExtensions.添加( "png" );
76 }
由于您正在并行建造,因此这可能是种族条件。您应该真正提出一个问题 mesources.
不隶属于 StackOverflow