我在命令行方式使用liquibase 3.4.1。我的命令是这样的:
D:Work>java -cp ".*" liquibase.integration.commandline.Main --defaultsFile=liquibase_methods.properties tagExists 4.5
工作很好:
The tag 4.5 does not exist in user@jdbc:oracle:thin:@url:port:SID
Liquibase 'tagExists' Successful
当我执行echo %errorlevel%
时,操作系统告诉我0,就像前面的命令被正确释放一样。
当tagExists命令返回标签不存在时,是否有一种"非常简单"的方法来获得退出代码!= 0 ?
我所说的"相当容易"也意味着比解析结果文本和寻找关键字更合适的事情。
问候,Guillaume
这将需要更改liquibase源代码。查看类src/main/java/liquibase/integration/commandline/main .java,您可以看到是否有错误,liquibase只是执行return
。这将需要更改,以便它执行System.exit(int)
,并且系统将需要更改,以便命令本身返回某种成功代码。
我想Nathan正在为4.0做改进,但是对于3.0。X行,这看起来是一个相当简单的改变。这样的改变的问题是它会对其他系统产生什么意想不到的后果。我建议在github上分叉项目并为自己进行更改,然后创建拉请求,看看是否可以将其添加到主线代码中。