gpt4 book ai didi

java - 如何在 Mac 上使用 Jib 对 Java 应用程序进行 docker 化

转载 作者:行者123 更新时间:2023-12-04 14:56:57 42 4
gpt4 key购买 nike

我正在尝试通过运行下面的 dockerBuild 命令首先构建本地镜像来对我的 Java Web 应用程序进行 docker 化。请记住,我使用的是 Mac 并且正在为我的项目使用 Java 16jib-maven-plugin

当我运行该命令时,出现以下错误。

错误

 Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.apache.maven.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:39)
at org.apache.maven.wrapper.WrapperExecutor.execute(WrapperExecutor.java:122)
at org.apache.maven.wrapper.MavenWrapperMain.main(MavenWrapperMain.java:61)
Caused by: java.lang.NoClassDefFoundError: org/apache/maven/exception/ExceptionHandler
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3334)
at java.base/java.lang.Class.getMethodsRecursive(Class.java:3475)
at java.base/java.lang.Class.getMethod0(Class.java:3461)
at java.base/java.lang.Class.getMethod(Class.java:2193)
at org.codehaus.plexus.classworlds.launcher.Launcher.getEnhancedMainMethod(Launcher.java:168)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:261)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
... 7 more
Caused by: java.lang.ClassNotFoundException: org.apache.maven.exception.ExceptionHandler
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)
... 17 more

命令

./mvnw jib:dockerBuild -Djib.to.image=fullstack:v1

pom.xml

      <plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<from>
<image>openjdk:16</image>
</from>
<container>
<ports>
<port>8080</port>
</ports>
<format>OCI</format>
</container>
</configuration>
</plugin>

会不会是jib-maven-plugin(2.5.2)的版本不兼容Java 16?

最佳答案

我也在 mac 上使用 jib。

根据这个issue似乎 jib 尚未针对 java 16 进行测试。您可以使用早期版本(例如 java 11)构建并仍然在 java 16 之上执行它,前提是您的代码在早期版本上编译并且您不使用 java 16特征。还要确保使用 maven 3.8.1

关于java - 如何在 Mac 上使用 Jib 对 Java 应用程序进行 docker 化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67780250/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com