2016-12-06 889 views
2

我是新來的春天開機無法打包我的春節,啓動應用程序的Jar

當我想用Eclipse來包裝我springboot的應用程序,我得到以下錯誤

[WARNING] Error injecting: org.springframework.boot.maven.RepackageMojo 
java.lang.NoClassDefFoundError: org/apache/maven/shared/artifact/filter/collection/ArtifactsFilter 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) 
    at java.lang.Class.getDeclaredConstructors(Class.java:2020) 
    at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245) 
    at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:99) 
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:658) 
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:882) 
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:805) 
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:282) 
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:214) 
    at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1006) 
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1038) 
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1001) 
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1051) 
    at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48) 
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81) 
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53) 
    at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:65) 
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:115) 
    at org.eclipse.sisu.bean.BeanScheduler$Activator.onProvision(BeanScheduler.java:176) 
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:126) 
    at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:68) 
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:63) 
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45) 
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016) 
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092) 
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012) 
    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:517) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
    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:863) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
    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: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: java.lang.ClassNotFoundException: org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter 
    at 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) 
    ... 55 more 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 6.030 s 
[INFO] Finished at: 2016-12-06T16:43:32+08:00 
[INFO] Final Memory: 33M/266M 
[INFO] ------------------------------------------------------------------------ 
[WARNING] The requested profile "pom.xml" could not be activated because it does not exist. 

我怎樣才能解決這個問題?

Springboot版本:1.4.2

彈簧啓動的Maven插件版本:1.4.2

謝謝!

加入我的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.shuluan</groupId> 
    <artifactId>logistic-service</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>logistic-service</name> 
    <description>logistic service for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.2.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context-support</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.oltu.oauth2</groupId> 
      <artifactId>org.apache.oltu.oauth2.authzserver</artifactId> 
      <version>0.31</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.oltu.oauth2</groupId> 
      <artifactId>org.apache.oltu.oauth2.resourceserver</artifactId> 
      <version>0.31</version> 
     </dependency> 

     <dependency> 
      <groupId>org.quartz-scheduler</groupId> 
      <artifactId>quartz</artifactId> 
      <version>2.2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.quartz-scheduler</groupId> 
      <artifactId>quartz-jobs</artifactId> 
      <version>2.2.1</version> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
     </dependency> 

     <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> 
     <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId> 
      <artifactId>jackson-databind</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.json-lib</groupId> 
      <artifactId>json-lib</artifactId> 
      <version>2.3</version> 
      <classifier>jdk15</classifier> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 
+0

你使用eclipse? – abbath

+0

[One Spring Boot項目可能重複,部署到JAR或WAR](http://stackoverflow.com/questions/23868580/one-spring-boot-project-deploy-to-both-jar-or-war) – abbath

+0

@abbath是的,使用eclipse – zhiying

回答

0

我已經找到了原因:

罐子:org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter沒有完全下載,所以我得到找不到類的消息。

只是刪除Maven倉庫這些文件並重新構建應用程序,那麼我們將得到「BUILD SUCCESS」

0

發生becouse行家無法找到所需的類問題。 mvn package命令不會在pom.xml所在的目錄中執行。嘗試打開cmd /終端並使用pom.xml在目錄中鍵入mvn package

+0

我試過'mvn package',但是也得到這個問題 – zhiying

+0

你可以發佈你的項目結構嗎? – yt61