Gradle:指定最终的spring-boot jar文件的正确方法是什么?

我的春天启动应用程序最初是使用Maven构建的,但是我想摇篮 - IFY它。我的构建过程的一部分是使用dockerfile-maven插件制作码头图像。最接受的gradle等价物似乎是com.palantir.docker,所以这就是我正在使用的(至少根据this tutorial from pivotal。)Gradle:指定最终的spring-boot jar文件的正确方法是什么?

我的设置非常简单。我的dockerfile需要一个构建参数,这是最终的jar,并将其添加到图像。

FROM openjdk:8-jdk-alpine 

MAINTAINER github.com/paul-nelson-baker

EXPOSE 5005 8080 35729

ENTRYPOINT ["java", "-Xdebug", "-Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n", "-jar", "/var/paulbaker/pauls-blog.jar"]

ARG JAR_FILE

ADD ${JAR_FILE} "/var/paulbaker/pauls-blog.jar"

让我饿的部分是gradle setup。我通过构建ARG出现正确的:每当我试图建立图像

docker { 

name = "paulbaker.io/my-blog"

tags 'latest'

dockerfile file('src/main/docker/Dockerfile')

files "${project.name}-${version}.jar"

buildArgs([JAR_FILE: "${project.name}-${version}.jar"])

}

不过,我得到以下错误,即使实际Java构建成功:

$ gradle build docker 

> Task :docker FAILED

ADD failed: stat /var/lib/docker/tmp/docker-builder952857277/pauls-blog-0.0.1-SNAPSHOT.jar: no such file or directory

我已经尝试了无数的组合试图指定./build/libs/pauls-blog-0.0.1-SNAPSHOT.jar的路径(相对于我的项目),我可以看到存在,而上面的打印目录没有。

显然有一些我不认识的gradle左右建造,能有人清理如何得到最终的jar文件?

回答:

我已经解决了这个问题,但我不知道为什么,这是不同的,所以我要离开打开,有人有机会作出详细的解释,为什么这个工程的问题。

的正确值应该引用jar.archivePath。 所以最终结果如下所示:

docker { 

name = "paulbaker.io/my-blog"

tags 'latest'

dockerfile file('src/main/docker/Dockerfile')

files jar.archivePath

buildArgs([JAR_FILE: "${jar.archiveName}"])

}

以上是 Gradle:指定最终的spring-boot jar文件的正确方法是什么? 的全部内容, 来源链接: utcz.com/qa/260485.html

回到顶部