如何为fabric8-maven-plugin的java-exec生成器添加Dropwizard启动参数?
解决fabric8-maven-plugin java-exec生成器缺少Dropwizard启动参数的问题
嘿,我刚好用fabric8-maven-plugin处理过Dropwizard的容器化部署需求,给你两个简单靠谱的配置方案,帮你补上启动所需的server hello-world.yml参数:
方案1:通过java-exec生成器的arguments配置追加参数
直接在pom.xml的fabric8-maven-plugin配置中,给java-exec生成器指定启动参数,这样会自动追加到默认的java -jar xxx.jar命令后面:
<plugin> <groupId>io.fabric8</groupId> <artifactId>fabric8-maven-plugin</artifactId> <version>你的插件版本号</version> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> </goals> </execution> </executions> <configuration> <generator> <config> <java-exec> <!-- 这里填Dropwizard需要的启动参数 --> <arguments>server hello-world.yml</arguments> </java-exec> </config> </generator> </configuration> </plugin>
配置完成后,生成的容器启动命令就会变成你需要的:java -jar hello-world-0.0.1-SNAPSHOT.jar server hello-world.yml。
方案2:直接定义完整的启动命令(覆盖默认命令)
如果想更灵活地控制整个启动命令,可以直接在镜像构建配置里指定<cmd>标签,这种方式会完全替换默认的启动命令:
<plugin> <groupId>io.fabric8</groupId> <artifactId>fabric8-maven-plugin</artifactId> <version>你的插件版本号</version> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> </goals> </execution> </executions> <configuration> <images> <image> <name>你的镜像名称(比如:${project.groupId}/${project.artifactId}:${project.version})</name> <build> <!-- 用maven动态属性替换jar文件名,避免硬编码版本号 --> <cmd>java -jar ${project.build.finalName}.jar server hello-world.yml</cmd> </build> </image> </images> </configuration> </plugin>
额外提醒
如果你的hello-world.yml不是打包在jar内部,而是需要通过OpenShift的ConfigMap挂载到容器中,记得还要在fabric8配置里添加Volume和VolumeMount的配置,确保容器能正确访问到配置文件路径。
内容的提问来源于stack exchange,提问作者Jaco van Niekerk
相关产品推荐
相关产品推荐

