【问题标题】:how to use a local Library with an executable jar如何使用带有可执行 jar 的本地库
【发布时间】:2021-03-25 22:53:39
【问题描述】:

我想为我的后端创建一个可部署的 docker 映像。所以我试图用一个胖的可执行 jar 来制作完整的生产映像。

我已将程序集插件用于第一个版本,效果很好。

在我的项目的第二个版本中,我使用的是本地 jar 库。 我将它添加到依赖项中。要使用 mvn spring-boot:run 测试集成,它工作正常。 但是,当我创建整个项目的可执行 jar 文件时。它没有成功。我遇到了错误

Exception in thread "main" java.lang.NoClassDefFoundError:. 
        Caused by: java.lang.ClassNotFoundException: myClass
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

您有解决此问题的任何想法或链接吗?提前谢谢你。

【问题讨论】:

    标签: spring-boot maven executable-jar


    【解决方案1】:

    如果你想从一个独立的 jar 运行你的应用程序,那么你的 jar 必须包含其中的所有依赖 jar。这种类型的 jar 称为 fat 或可执行 jar。 Maven 不会自动为您创建 fat jar。您需要将以下插件添加到您的 pom.xml 以创建可执行 jar。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>{abc.cde.YourMainClass}</mainClass>
                </configuration>
    
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
               </executions>
    
            </plugin>
        </plugins>
    </build>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-29
      • 2016-08-20
      • 2018-01-31
      • 2018-06-09
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多