maven 編譯錯(cuò)誤 org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)

最近新接觸scala代碼的編寫(xiě)、編譯,使用mvn編譯項(xiàng)目時(shí)經(jīng)常碰到“ExecuteException: Process exited with an error: 1 (Exit value: 1)” 。特別是在mvn clean再mvn package時(shí),很容易出現(xiàn)。
另外,從錯(cuò)誤日志上看不到具體是哪行代碼編譯有問(wèn)題,找不到原因,很無(wú)奈。
最近一次出現(xiàn)該問(wèn)題是從spark2.1.1中copy了spark-streaming-kafka-0-10_2.11子項(xiàng)目的源碼,精簡(jiǎn)pom.xml之后編譯,又出現(xiàn)這類問(wèn)題,詳細(xì)日志如下:

[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (default) on project yisou-spark-streaming-kafka-0-10_2.11: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal net.alchim31.maven:scala-maven-plugin:3.2.2:compile (default) on project yisou-spark-streaming-kafka-0-10_2.11: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
at scala_maven.ScalaMojoSupport.execute(ScalaMojoSupport.java:490)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more

走了許多彎路之后(如修改scala版本號(hào)、更換maven-scala-plugin、完全復(fù)制源碼的pom等),最后意外發(fā)現(xiàn)pom中去掉
guava的exclusion就沒(méi)問(wèn)題了。
會(huì)報(bào)錯(cuò)的pom:

       <dependency>
           <groupId>org.apache.spark</groupId>
           <artifactId>spark-core_${scala.binary.version}</artifactId>
           <version>2.1.1</version>
           <type>test-jar</type>
           <scope>provided</scope>
           <exclusions>
               <exclusion>
                   <artifactId>guava</artifactId>
                   <groupId>com.google.guava</groupId>
               </exclusion> 
           </exclusions>
       </dependency>

能正常運(yùn)行的pom:

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.binary.version}</artifactId>
            <version>2.1.1</version>
            <type>test-jar</type>
            <scope>provided</scope> 
        </dependency>

為什么加了exclusion guava就編譯報(bào)錯(cuò)了呢,如果是exclusion 其他的artifactId并沒(méi)有此問(wèn)題。spark-streaming-kafka-0-10_2.11源碼中并沒(méi)有使用guava的類。

我也暫時(shí)沒(méi)查出原因,在此提醒遇到類似問(wèn)題的朋友,多從pom配置而不是代碼入手,特別注意guava的exclusion很可能會(huì)造成此問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容