无法将我的Spring Boot应用程序打包为可运行的Fat Jar

1984年

我对Spring Boot有点陌生,下面是我的应用程序的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 package时,出现以下错误-

[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

我已经尝试过排除其他许多帖子中提到的重新包装,但是效果不好。有什么建议么?

操作系统-Win 7 64位

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

我还从spring intializr那里选择了一个裸露的骨骼项目,并尝试了mvn package同样的错误。与我的机器,maven或其他任何问题有关吗?

谢谢

然后马库斯

从获得的异常来看,spring-loaded依赖项的下载已损坏。

查找maven在其中下载依赖项的.m2目录(默认情况下,位于用户目录中的目录)。找到spring-loaded目录并将其删除。这将迫使maven重新下载依赖项。

除了手动删除依赖项之外,您还可以使用Maven依赖项插件清除所有内容。

mvn dependency:purge-local-repository

这应该从.m2目录中删除依赖项,并在next上强制重新下载mvn package(请参阅使用Maven强制重新下载发布依赖项

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Spring Boot加载jar(应用程序依赖项和外部文件系统jar)

来自分类Dev

在构建我的应用程序jar时包括外部jar

来自分类Dev

我的LWJGL和Slick2d应用程序无法从可运行的jar文件运行

来自分类Dev

是否可以将我的Web应用程序打包为JAR并将Web资源放在META-INF / resources下?

来自分类Dev

在heroku上运行spring boot应用程序时,“无法从JAR文件读取TLD”

来自分类Dev

使用-jar运行Spring Boot应用程序时出错

来自分类Dev

无法在Windows打包的Java应用程序中提取jar文件

来自分类Dev

当应用程序打包到jar中时,Jetty无法找到REST类

来自分类Dev

在Eclipse中将Spring Boot应用程序导出为JAR文件

来自分类Dev

从.jar手动启动的Spring Boot应用程序无法正常工作

来自分类Dev

Spring Boot应用程序java -jar --property重写无法正常工作

来自分类Dev

Spring Boot将Web应用程序打包到.jar

来自分类Dev

运行Spring Boot应用程序的jar文件时出错

来自分类Dev

为什么先取消jar然后再次jar会破坏我的Spring Boot Web应用程序?

来自分类Dev

Java Standalone可运行GUI应用程序-无法获取jar文件来打开程序

来自分类Dev

将Spring Boot JAR应用程序转换为WAR

来自分类Dev

在heroku上运行spring boot应用程序时,“无法从JAR文件读取TLD”

来自分类Dev

spring-boot,maven:无法运行或打包应用程序

来自分类Dev

当应用程序打包到jar中时,Jetty无法找到REST类

来自分类Dev

如何将Spring MVC应用程序打包到jar中?

来自分类Dev

打包成jar文件后Java应用程序无法正常工作

来自分类Dev

我无法在Windows上运行Spring Boot Jar

来自分类Dev

无法在命令提示符下将Spring Boot应用程序作为可运行的jar运行

来自分类Dev

将可运行的 Spring Boot jar 部署到 Heroku

来自分类Dev

无法执行我的 .jar JavaFX 应用程序

来自分类Dev

将我的 FAT Jar 发布到本地 sbt 存储库

来自分类Dev

Maven:我可以在 jar 中只打包依赖项(没有应用程序)吗?

来自分类Dev

通过 -cp 而不是 -jar 运行 spring boot 应用程序 jar

来自分类Dev

具有 jar 依赖项的 Spring Boot 应用程序在 maven 构建后不会运行

Related 相关文章

  1. 1

    Spring Boot加载jar(应用程序依赖项和外部文件系统jar)

  2. 2

    在构建我的应用程序jar时包括外部jar

  3. 3

    我的LWJGL和Slick2d应用程序无法从可运行的jar文件运行

  4. 4

    是否可以将我的Web应用程序打包为JAR并将Web资源放在META-INF / resources下?

  5. 5

    在heroku上运行spring boot应用程序时,“无法从JAR文件读取TLD”

  6. 6

    使用-jar运行Spring Boot应用程序时出错

  7. 7

    无法在Windows打包的Java应用程序中提取jar文件

  8. 8

    当应用程序打包到jar中时,Jetty无法找到REST类

  9. 9

    在Eclipse中将Spring Boot应用程序导出为JAR文件

  10. 10

    从.jar手动启动的Spring Boot应用程序无法正常工作

  11. 11

    Spring Boot应用程序java -jar --property重写无法正常工作

  12. 12

    Spring Boot将Web应用程序打包到.jar

  13. 13

    运行Spring Boot应用程序的jar文件时出错

  14. 14

    为什么先取消jar然后再次jar会破坏我的Spring Boot Web应用程序?

  15. 15

    Java Standalone可运行GUI应用程序-无法获取jar文件来打开程序

  16. 16

    将Spring Boot JAR应用程序转换为WAR

  17. 17

    在heroku上运行spring boot应用程序时,“无法从JAR文件读取TLD”

  18. 18

    spring-boot,maven:无法运行或打包应用程序

  19. 19

    当应用程序打包到jar中时,Jetty无法找到REST类

  20. 20

    如何将Spring MVC应用程序打包到jar中?

  21. 21

    打包成jar文件后Java应用程序无法正常工作

  22. 22

    我无法在Windows上运行Spring Boot Jar

  23. 23

    无法在命令提示符下将Spring Boot应用程序作为可运行的jar运行

  24. 24

    将可运行的 Spring Boot jar 部署到 Heroku

  25. 25

    无法执行我的 .jar JavaFX 应用程序

  26. 26

    将我的 FAT Jar 发布到本地 sbt 存储库

  27. 27

    Maven:我可以在 jar 中只打包依赖项(没有应用程序)吗?

  28. 28

    通过 -cp 而不是 -jar 运行 spring boot 应用程序 jar

  29. 29

    具有 jar 依赖项的 Spring Boot 应用程序在 maven 构建后不会运行

热门标签

归档