【发布时间】:2020-07-14 15:00:09
【问题描述】:
我使用
创建了一个 micronaut 应用程序mn create-app my-app
它使用 Dockerfile 生成项目结构。 docker 文件正在寻找要复制的文件my-app-*-all.jar。
FROM openjdk:14-alpine
COPY build/libs/my-app-*-all.jar my-app.jar
EXPOSE 8080
CMD ["java", "-Dcom.sun.management.jmxremote", "-Xmx128m", "-jar", "my-app.jar"]
如何生成 my-app-*-all.jar?
./gradlew jar 没有生成 (-all) jar。
已编辑:它只生成my-app-0.1.jar,当我使用那个 jar 时,它给出了一个错误。
no main manifest attribute, in build/libs/my-app-0.1.jar
我需要在 build.gradle 文件中添加任何额外的行吗?
【问题讨论】:
-
使用 CLI 提供的模板,
./gradlew assemble应该构建 jar,来自 shadowJar 的任务将构建*-all.jar。运行./gradlew assemble时是否有任何错误? (特别是因为您的项目名称中的new保留关键字? -
@Airy 我没有收到任何错误
./gradlew jar和./gradlew assemble都在生成 jar。但是当我在 Dockerfile 或本地使用 jar 文件时。我收到错误no main manifest attribute, in build/libs/my-app-0.1.jar -
发现已经有人问过类似的问题了。 stackoverflow.com/questions/58755410/…
-
"我需要在 build.gradle 文件中添加任何额外的行吗?" - 如果不知道您的
build.gradle中当前有什么,这是不可能说的。 -
@JeffScottBrown
build.gradle是由 micronaut-cli 自动生成的。我相信,对于运行mn create-app my-app的任何人来说,生成的文件都是一样的。我现在很好,因为./gradlew shadowJar创造了奇迹。
标签: gradle build.gradle micronaut