【发布时间】:2017-05-10 09:56:45
【问题描述】:
我让 maven 运行 bash 来使用 Docker 构建一些东西。
<plugin>
...
<artifactId>maven-antrun-plugin</artifactId>
...
<exec executable="${basedir}/generate.sh" failonerror="true">
<arg value="${thrift.version}" />
...
bash 脚本运行如下:
for file in src/main/thrift/*.thrift; do
echo "Compiling ${file}"
docker run {...} thrift:${THRIFT_VERSION} thrift {...}
done
我的问题是,当 Docker 找不到我请求的版本时,它会在控制台中显示错误但它并没有“失败”:它只是继续构建。
[exec] Compiling src/main/thrift/amsException.thrift
[exec] docker: Tag 0.9.0 not found in repository docker.io/library/thrift.
[exec] See 'docker run --help'.
[exec] Unable to find image 'thrift:0.9.0' locally
因此 maven 说
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
当找不到版本时,如何让 Docker 抛出错误?我的最终目标是 Maven 在发生这种情况时无法进行全新安装。
干杯!
【问题讨论】:
-
我想另一种选择是事先检查版本是否存在,但我仍然需要抛出错误。
标签: bash maven docker maven-antrun-plugin