开发工具是IDEA,
一个Maven项目初次导入IDEA中,需要注意的几件事:
- 设置项目的编码格式(或者提前设置全局的编码格式),一般是UTF-8;
- 检查JDK版本和编译级别;
- 检查Maven的版本(可以打开pom文件看看里面用jar包版本大体判断maven的版本),一般高版本的IDEA对应高版本的Maven;
- 运行Clean install;
以上几个操作可以解决大部分的问题。
下面介绍几个常见的错误:
1、jar包读取出错:
Compilation failure Failure executing javac, but could not parse the error:
错误: 读取C:\Users\lzh_m\.m2\repository\org\slf4j\slf4j-api\1.7.7\slf4j-api-1.7.7.jar时出错; zip END header not found
Compilation failure
Failure executing javac, but could not parse the error:
错误: 读取C:\Users\lzh_m\.m2\repository\org\slf4j\slf4j-api\1.7.7\slf4j-api-1.7.7.jar时出错; zip END header not found
原因是下载的jar有点问题,解决办法是删除重新下载。找到jar目录,删掉然后运行Clean install。
2、org.apache.maven.plugin.surefire.SurefireReportParameters
org.apache.maven.plugin.surefire.SurefireReportParameters
解决办法:pom.xml里面添加:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>3.1.2</version>
</plugin>
3、maven版本太低,org.apache.maven.archiver.MavenArchiveConfiguration
org.apache.maven.archiver.MavenArchiveConfiguration[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ netty-websocket-server ---
[WARNING] The POM for org.apache.maven:maven-archiver:jar:2.5 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] Error injecting: org.apache.maven.plugin.jar.JarMojo
java.lang.NoClassDefFoundError: Lorg/apache/maven/archiver/MavenArchiveConfiguration;at java.lang.Class.getDeclaredFields0 (Native Method)at java.lang.Class.privateGetDeclaredFields (Class.java:2583)at java.lang.Class.getDeclaredFields (Class.java:1916)at com.google.inject.spi.InjectionPoint.getDeclaredFields (InjectionPoint.java:760)at com.google.inject.spi.InjectionPoint.getInjectionPoints (InjectionPoint.java:670)at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields (InjectionPoint.java:378)at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies (ConstructorBindingImpl.java:182)at com.google.inject.internal.InjectorImpl.getInternalDependencies (InjectorImpl.java:661)at com.google.inject.internal.InjectorImpl.cleanup (InjectorImpl.java:617)at com.google.inject.internal.InjectorImpl.initializeJitBinding (InjectorImpl.java:603)at com.google.inject.internal.InjectorImpl.createJustInTimeBinding (InjectorImpl.java:932)at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive (InjectorImpl.java:852)at com.google.inject.internal.InjectorImpl.getJustInTimeBinding (InjectorImpl.java:291)at com.google.inject.internal.InjectorImpl.getBindingOrThrow (InjectorImpl.java:222)at com.google.inject.internal.InjectorImpl.getProviderOrThrow (InjectorImpl.java:1040)at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1071)at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1034)at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)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:957)at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)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:498)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)at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: java.lang.ClassNotFoundException: org.apache.maven.archiver.MavenArchiveConfigurationat org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)at java.lang.Class.getDeclaredFields0 (Native Method)at java.lang.Class.privateGetDeclaredFields (Class.java:2583)at java.lang.Class.getDeclaredFields (Class.java:1916)at com.google.inject.spi.InjectionPoint.getDeclaredFields (InjectionPoint.java:760)at com.google.inject.spi.InjectionPoint.getInjectionPoints (InjectionPoint.java:670)at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields (InjectionPoint.java:378)at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies (ConstructorBindingImpl.java:182)at com.google.inject.internal.InjectorImpl.getInternalDependencies (InjectorImpl.java:661)at com.google.inject.internal.InjectorImpl.cleanup (InjectorImpl.java:617)at com.google.inject.internal.InjectorImpl.initializeJitBinding (InjectorImpl.java:603)at com.google.inject.internal.InjectorImpl.createJustInTimeBinding (InjectorImpl.java:932)at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive (InjectorImpl.java:852)at com.google.inject.internal.InjectorImpl.getJustInTimeBinding (InjectorImpl.java:291)at com.google.inject.internal.InjectorImpl.getBindingOrThrow (InjectorImpl.java:222)at com.google.inject.internal.InjectorImpl.getProviderOrThrow (InjectorImpl.java:1040)at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1071)at com.google.inject.internal.InjectorImpl.getProvider (InjectorImpl.java:1034)at com.google.inject.internal.InjectorImpl.getInstance (InjectorImpl.java:1086)at org.eclipse.sisu.space.AbstractDeferredClass.get (AbstractDeferredClass.java:48)at com.google.inject.internal.ProviderInternalFactory.provision (ProviderInternalFactory.java:85)at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision (InternalFactoryToInitializableAdapter.java:57)at com.google.inject.internal.ProviderInternalFactory$1.call (ProviderInternalFactory.java:66)at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:112)at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision (ProvisionListenerStackCallback.java:127)at com.google.inject.internal.ProvisionListenerStackCallback.provision (ProvisionListenerStackCallback.java:66)at com.google.inject.internal.ProviderInternalFactory.circularGet (ProviderInternalFactory.java:61)at com.google.inject.internal.InternalFactoryToInitializableAdapter.get (InternalFactoryToInitializableAdapter.java:47)at com.google.inject.internal.InjectorImpl$1.get (InjectorImpl.java:1050)at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162)at org.eclipse.sisu.inject.LazyBeanEntry.getValue (LazyBeanEntry.java:81)at org.eclipse.sisu.plexus.LazyPlexusBean.getValue (LazyPlexusBean.java:51)at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:263)at org.codehaus.plexus.DefaultPlexusContainer.lookup (DefaultPlexusContainer.java:255)at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:520)at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:124)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:957)at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)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:498)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)at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
解决办法:换个高版本的Maven重新install。
希望能为有需要的人提供点启发~