正在尝试从命令行(bash脚本)运行对liquibase的调用。如果我在服务器(Red hat linux)上运行它,这是可行的,但如果我从cygwin提示符运行它,我会得到一个错误:
java -cp ../liquibase-core-3.1.1:../ojdbc6-11.2.0.3.jar liquibase.integration.commandline.Main --driver=oracle.jdbc.OracleDriver \
--changeLogFile=database/master.xml --url=${schema_url} --username=${schema_username} --password=${schema_password} \
--contexts=${schema_context} migrate
我得到了错误:
Error: Could not find or load main class liquibase.integration.commandline.Main
看不出为什么。
发布于 2014-11-10 14:34:20
找到了解决问题的方法。用这些信息创建了一个liquibase.properties文件,
url: <url>
username: <username>
password: <password>
contexts: global,dev
driver: oracle.jdbc.OracleDriver
classpath: ../ojdbc6-11.2.0.3.jar
changeLogFile: database/master.xml
并使用以下命令调用liquibase CLI:
java -jar ../liquibase-core-3.1.1.jar --defaultsFile=../foo/fum/liquibase.properties migrate
这在服务器和cygwin上都工作得很好。
发布于 2016-12-22 19:29:54
问题是CYGWIN上的Java在解析路径时存在问题。要添加此内容,请执行以下操作
cygwinpath -wp
要解决此问题,请替换
java -cp ../liquibase-core-3.1.1:../ojdbc6-11.2.0.3.jar
使用
java -classpath \`cygpath -wp ../liquibase-core-3.1.1:../ojdbc6-11.2.0.3.jar\`
记住用这个标记`将cygwint -wp <path>
括起来
发布于 2017-07-20 20:32:56
出现这个问题是因为Java需要一个windows风格的路径,而liquibase脚本却发出了一个unix风格的路径。另请参阅讨论how to run Java from cygwin。建议的解决方案是通过cygpath来修复它。
不过,根本的情况是不同的。如果查看liquibase的启动脚本,您会看到以下代码段
# build classpath from all jars in lib
if [ -f /usr/bin/cygpath ]; then
CP=.
for i in "$LIQUIBASE_HOME"/liquibase*.jar; do
i=`cygpath --windows "$i"`
CP="$CP;$i"
done
for i in "$LIQUIBASE_HOME"/lib/*.jar; do
i=`cygpath --windows "$i"`
CP="$CP;$i"
done
else
if [[ $(uname) = MINGW* ]]; then
CP_SEPARATOR=";"
else
CP_SEPARATOR=":"
fi
CP=.
for i in "$LIQUIBASE_HOME"/liquibase*.jar; do
CP="$CP""$CP_SEPARATOR""$i"
done
for i in "$LIQUIBASE_HOME"/lib/*.jar; do
CP="$CP""$CP_SEPARATOR""$i"
done
fi
也就是说,该脚本将检查cygpath是否存在,如果找到,将修复该问题。很有可能你缺少cygpath。
如果which cygpath
结果是/usr/bin/cygpath
,那么一切都应该像预期的那样工作。否则,你已经找到了根本原因。
这就提出了一个问题,为什么cygpath会丢失,以及如何获取它。在我的例子中,我删除了git / gitbash的(过时)安装,并安装了最新版本。这带来了一个最新的gitbash,其中包括所需的cygpath。
https://stackoverflow.com/questions/26735831
复制相似问题