2016-10-03 4 views
1

Я немного новичок в Spring загрузки и ниже файл POM/Java моего приложения:Невозможно упаковать мой Spring приложение загрузки как работоспособный жира Jar

<?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); 
... 

Теперь, когда я пытаюсь запустить пакет команду МВН я получаю ниже ошибки -

[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 

I попробовали исключить переупаковку, как упоминалось во многих других сообщениях, но ничего хорошего. Любые предложения?

ОС - Win 7 64 бит

Maven - Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T22: 11: 47 + 05: 30)

Также я выбрал голую проект кости из весной intializr и попробовал mvn package и ту же ошибку. Любые проблемы, связанные с моей машиной, maven или чем-нибудь еще?

Благодаря

+1

Попробуйте удалить каталог 'spring-loader' из каталога' .m2' в вашем домашнем каталоге. Похоже, он сломан/поврежден из более ранней загрузки. Вы также можете удалить весь каталог '.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

Инструменты погрузчика баночка файл весной бух поврежден

удалить эту папку с локальным хранилищем и запустить мавенно установить, чтобы загрузить файл банки снова

\ .m2 \ репозитория \ org \ springframework \ boot \ spring-boot-loader-tools

Смежные вопросы