Gitlab CI/CD-【Maven 历险篇 - 1】

最近一直致力于将 Jenkins 自动发布的工作前移至 Gitlab上,在进行这个工作的时候时常会出现一些预想不到情况,今天要讲的是其中的一次历险经历。

问题的场景描述

借助公司引入第三方CRM的契机,我们对公司内的系统进行了重新的规划,目标是搭建一个基于微服务的分布式系统。因此创建了很多微服务,例如:合同、客户、财务、订单、样本、员工等等,除了业务以外还有类似与消息队列监听这样与业务无关的基础服务,此次历险的罪魁祸首就是这个消息队列监听服务(annoroad-mq-listener)。在将其他微服务从 Jenkins 迁移至 Gitlab 的过程中相对比较顺畅,只有在对消息队列监听服务(annoroad-mq-listener)进行迁移的时候,在 Gitlab 执行 .gitlab-ci.yml 中 mvn 命令的时候出现了问题(注:这里我贴出 .gitlab-ci.yml 中执行 mvn 命令的相关代码,如下图)。
在这里插入图片描述

出现的异常信息

在 Gitlab 中执行 Pipeline 的过程中,在执行 mvn 打包阶段,将会抛出异常,如下图:
在这里插入图片描述
详细错误信息如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project annoroad-mq-listener: Fatal error compiling: CompilerException: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project annoroad-mq-listener: Fatal error compiling
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1140)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.codehaus.plexus.compiler.CompilerException
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:173)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.lang.NullPointerException
at com.sun.tools.javac.main.JavaCompiler.readSourceFile (JavaCompiler.java:841)
at com.sun.tools.javac.processing.JavacProcessingEnvironment I m p l i c i t C o m p l e t e r . c o m p l e t e ( J a v a c P r o c e s s i n g E n v i r o n m e n t . j a v a : 1529 ) a t c o m . s u n . t o o l s . j a v a c . c o d e . S y m b o l . c o m p l e t e ( S y m b o l . j a v a : 642 ) a t c o m . s u n . t o o l s . j a v a c . c o d e . S y m b o l ImplicitCompleter.complete (JavacProcessingEnvironment.java:1529) at com.sun.tools.javac.code.Symbol.complete (Symbol.java:642) at com.sun.tools.javac.code.Symbol ImplicitCompleter.complete(JavacProcessingEnvironment.java:1529)atcom.sun.tools.javac.code.Symbol.complete(Symbol.java:642)atcom.sun.tools.javac.code.SymbolClassSymbol.complete (Symbol.java:1326)
at com.sun.tools.javac.code.Type C l a s s T y p e . c o m p l e t e ( T y p e . j a v a : 1140 ) a t c o m . s u n . t o o l s . j a v a c . c o d e . T y p e ClassType.complete (Type.java:1140) at com.sun.tools.javac.code.Type ClassType.complete(Type.java:1140)atcom.sun.tools.javac.code.TypeClassType.getTypeArguments (Type.java:1066)
at com.sun.tools.javac.code.Printer.visitClassType (Printer.java:237)
at com.sun.tools.javac.code.Printer.visitClassType (Printer.java:52)
at com.sun.tools.javac.code.Type C l a s s T y p e . a c c e p t ( T y p e . j a v a : 993 ) a t c o m . s u n . t o o l s . j a v a c . c o d e . P r i n t e r . v i s i t ( P r i n t e r . j a v a : 136 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . A b s t r a c t D i a g n o s t i c F o r m a t t e r . f o r m a t A r g u m e n t ( A b s t r a c t D i a g n o s t i c F o r m a t t e r . j a v a : 199 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . A b s t r a c t D i a g n o s t i c F o r m a t t e r . f o r m a t A r g u m e n t s ( A b s t r a c t D i a g n o s t i c F o r m a t t e r . j a v a : 167 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . B a s i c D i a g n o s t i c F o r m a t t e r . f o r m a t M e s s a g e ( B a s i c D i a g n o s t i c F o r m a t t e r . j a v a : 111 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . B a s i c D i a g n o s t i c F o r m a t t e r . f o r m a t M e s s a g e ( B a s i c D i a g n o s t i c F o r m a t t e r . j a v a : 67 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . A b s t r a c t D i a g n o s t i c F o r m a t t e r . f o r m a t A r g u m e n t ( A b s t r a c t D i a g n o s t i c F o r m a t t e r . j a v a : 185 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . A b s t r a c t D i a g n o s t i c F o r m a t t e r . f o r m a t A r g u m e n t s ( A b s t r a c t D i a g n o s t i c F o r m a t t e r . j a v a : 167 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . B a s i c D i a g n o s t i c F o r m a t t e r . f o r m a t M e s s a g e ( B a s i c D i a g n o s t i c F o r m a t t e r . j a v a : 111 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . B a s i c D i a g n o s t i c F o r m a t t e r . f o r m a t M e s s a g e ( B a s i c D i a g n o s t i c F o r m a t t e r . j a v a : 67 ) a t c o m . s u n . t o o l s . j a v a c . u t i l . J C D i a g n o s t i c . g e t M e s s a g e ( J C D i a g n o s t i c . j a v a : 788 ) a t c o m . s u n . t o o l s . j a v a c . a p i . C l i e n t C o d e W r a p p e r ClassType.accept (Type.java:993) at com.sun.tools.javac.code.Printer.visit (Printer.java:136) at com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument (AbstractDiagnosticFormatter.java:199) at com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments (AbstractDiagnosticFormatter.java:167) at com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage (BasicDiagnosticFormatter.java:111) at com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage (BasicDiagnosticFormatter.java:67) at com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument (AbstractDiagnosticFormatter.java:185) at com.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments (AbstractDiagnosticFormatter.java:167) at com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage (BasicDiagnosticFormatter.java:111) at com.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage (BasicDiagnosticFormatter.java:67) at com.sun.tools.javac.util.JCDiagnostic.getMessage (JCDiagnostic.java:788) at com.sun.tools.javac.api.ClientCodeWrapper ClassType.accept(Type.java:993)atcom.sun.tools.javac.code.Printer.visit(Printer.java:136)atcom.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:199)atcom.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:167)atcom.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)atcom.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)atcom.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArgument(AbstractDiagnosticFormatter.java:185)atcom.sun.tools.javac.util.AbstractDiagnosticFormatter.formatArguments(AbstractDiagnosticFormatter.java:167)atcom.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:111)atcom.sun.tools.javac.util.BasicDiagnosticFormatter.formatMessage(BasicDiagnosticFormatter.java:67)atcom.sun.tools.javac.util.JCDiagnostic.getMessage(JCDiagnostic.java:788)atcom.sun.tools.javac.api.ClientCodeWrapperDiagnosticSourceUnwrapper.getMessage (ClientCodeWrapper.java:799)
at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:131)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
ERROR: Job failed: exit code 1

解决的办法

在 annoroad-mq-listener 项目的 pom.xml 文件中指定 maven-compiler-plugin 的 release,这里有两种方法,推荐使用【方法1】,如下:

  1. 在 pom.xml 文件中设置 maven-compiler-plugin 对应的 properties,如下图:
    在这里插入图片描述
  2. 在 pom.xml 文件中设置 maven-compiler-plugin 对应的 plugin,如下图:
    在这里插入图片描述

问题出现的原因

未待完续…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cab5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值