eclipse中maven的run as打war包失败的问题

简介:
场景一:
由于某些原因,有的时候需要暂时在断网的情况下,或者更标准的说,是在连不上公司的maven公有仓库的情况下打包。
很长一段时间,我打包都是在eclipse中用run as在线打包,直到前不久一次连不上公有仓库时打包出错,具体的错误因为某些原因,暂时无法重现,也就无法截图。
后来我的解决办法是,在maven的settings.xml文件中加入离线配置,如下图的
26ba849d4b5b8a034a55886ad48404a157e3f0eb

<offline>true</offline>

这个配置默认是没有的,没有的情况下默认是<offline>fasle</offline>.
为了验证更改有效,我特意拔去了网线打包,结果果然成功。
但是有些郁闷的是,我无法断定是否是eclipse的问题,就如上图一样,我再把这个配置注释掉以后,再次打包却也开始屡屡成功,因此本想把之前的错误截个图都无法实现。
但可以肯定的是,当我没有更改这个配置之前,凡离线打包,屡试屡败,自从改过以后,虽然又注释了,但是再离线打包,都是屡试屡成。
因此,如果有人遇到这种需要离线打包却又不成功的情况,可以尝试一下这个方法,或许也就成功了。

场景二:
最近我的eclipse出了很多毛病,重装了多次依旧没有解决这些问题,例如编译突然变得特别慢,常常在更改代码以后重启tomcat不再自动编译(有配置的情况下),还有就是很多项目依赖的jar包,maven不会自动加载,导致需要force update。
也正是因为这个问题,导致我打包过程中报错如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project pbossvisual: Compilation failure: Compilation failure:
[ERROR] /D:/eclipseWorkspace1/pbossvisual1/src/main/java/com/cmsz/pbossvisual/alarmset/model/AlarmData.java:[1,1] 非法字符: \65279
[ERROR] /D:/eclipseWorkspace1/pbossvisual1/src/main/java/com/cmsz/pbossvisual/alarmset/model/AlarmData.java:[1,10] 需要class, interface或enum
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project pbossvisual: Compilation failure
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
	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:120)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	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.compiler.CompilationFailureException: Compilation failure
	at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:858)
	at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:129)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 19 more
[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/MojoFailureException


对于这个错,我一开始也有点丈二和尚摸不着头脑,但是查了若干资料后,再在eclipse中乱点了一通后终于发现问题所在。
我发现,正常情况下右键项目的build path,会是如下图所示:
1d4d313ef0cd7919774efc640a1a333df732cc90
而这种打包失败的情况下,build path打开后确实如下图所示:
b211b3c819dc1bdbb8ab684413e8dfc9ceffa44e
可以看出图2比图1少了一行,而正是这一行导致打包失败。
因为少了这一行,maven打包时就无法找到相应的依赖包,从而出现了如上所示的错误,于是我手动add,如下图:
056b402199af8c10d5e20b439c7e7ee7e86eef45
922110367b3deb5ec9b1d501106ba657f0422de3
之后再次打包便没有了之前的问题,经过几次尝试,结果都是和料想一样,若有人遇到类似的情况,也不妨一试。
目录
相关文章
|
2月前
|
Java 测试技术 Maven
maven 打jar包:mvn clean package
maven 打jar包:mvn clean package
55 7
|
2月前
|
Java Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(一)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
33 0
|
8天前
|
Java Maven
Run HelloWorld using Maven(JavaFX)
Run HelloWorld using Maven(JavaFX)
8 1
|
21天前
|
Java 关系型数据库 Maven
SpringBootWebProject学习4、maven打war包
SpringBootWebProject学习4、maven打war包
15 1
|
22天前
|
Java Maven Android开发
eclipse更改maven的本地路径和外部仓库地址
eclipse更改maven的本地路径和外部仓库地址
20 1
|
8天前
|
Java 关系型数据库 MySQL
Maven如何快捷导入jar包
Maven如何快捷导入jar包
|
9天前
|
Java Maven
java运行jar包提示 “XXX中没有主清单属性”,配置maven插件
java运行jar包提示 “XXX中没有主清单属性”,配置maven插件
16 0
|
11天前
|
缓存 Java Maven
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
15 0
|
15天前
|
Java Maven Android开发
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】2
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】
16 0
|
15天前
|
Java 应用服务中间件 Maven
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】1
杨校老师课堂基于SSM整合之用户登录案例【Eclipse - Maven版】
22 0