2016-10-03 28 views
1

我是一個有點新的春天引導和下面是我的應用程序的POM/Java的文件:無法打包我的春節,啓動應用程序作爲一個可運行的胖罐

<?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.aj.stuff.install</groupId> 
    <artifactId>MyProject</artifactId> 
    <version>0.0.1</version> 
    <packaging>jar</packaging> 

    <name>Some-Name</name> 
    <description>Some Stuff</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.1.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> 
    </dependencies> 

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

</project> 

主要的Java應用程序代碼片段如下 -

@SpringBootApplication 
public class MyApplication { 

    public static void main(String[] args) throws IOException, InterruptedException { 
     SpringApplication.run(MyApplication.class, args); 
... 

現在,當我嘗試運行命令MVN包我得到下面的錯誤 -

[INFO] --- spring-boot-maven-plugin:1.4.1.RELEASE:repackage (default) @ MY-Bootstrap --- 
[WARNING] The POM for org.springframework.boot:spring-boot-loader-tools:jar:1.4.1.RELEASE is invalid, transitive dependencies (if any) will not be available, 
able debug logging for more details 
[WARNING] Error injecting: org.springframework.boot.maven.RepackageMojo 
java.lang.NoClassDefFoundError: org/springframework/boot/loader/tools/LaunchScript 
     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.springframework.boot.loader.tools.LaunchScript 
     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 

我如許多其他帖子中提到的,嘗試了排除重新包裝,但沒有好處。 有什麼建議嗎?

OS - Win 7的64位

的Maven - 阿帕奇Maven的3.3.9(bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T22:11:47 + 05:30)

另外我挑選的裸骨項目從春天intializr和嘗試mvn package和同樣的錯誤。任何與我的機器,maven或其他任何問題有關的問題?

感謝

+1

嘗試從主目錄中的'.m2'目錄中刪除'spring-loader'目錄。看起來它從早期的下載中破壞/損壞了。你也可以刪除整個'.m2'目錄,但是這會強制下載你曾經下載過的所有東西。 –

回答

1

從你得到的異常來看,下載spring-loaded依賴項被損壞。

查找maven下載依賴關係的目錄(默認情況下,用戶目錄中的.m2目錄)。找到spring-loaded目錄並將其刪除。這將強制Maven再次下載依賴項。

您也可以使用Maven依賴項插件來清除條目,而不是手動刪除依賴項。

mvn dependency:purge-local-repository 

這應該從.m2目錄中刪除的依賴,迫使在下一個mvn package重新下載。 (見Force re-download of release dependency using Maven

+0

謝謝,這工作。你救了我的一天:) – aj1984

0

貌似版本不對彈簧引導裝載-tools.jar中的加載。這link可能會幫助你解決問題

0

春噓裝載機工具的jar文件已損壞

從本地資源庫和運行Maven刪除此文件夾中安裝下載jar文件再次

\ .m2目錄\庫\ org \ springframework \ boot \ spring-boot-loader-tools

相關問題