当前位置: 首页 > 知识库问答 >
问题:

Liquibase maven插件不工作

李兴安
2023-03-14

我正在使用用于Oracle12c数据库的Liquibase maven插件,但在运行update命令时出现以下错误:

我看到了与此问题相关的堆栈溢出帖子,其中建议对sqlnet.ora文件进行更改,但以下命令通过使用完全相同的changelog在命令行中工作很好:

java-jar~/.m2/repository/org/liquibase/liquibase-core/3.5.3/liquibase-core-3.5.3.jar--driver=oracle.jdbc.oracledriver--classpath=/users/nsalvi/downloads/ojdbc6.jar--url=“假URL”--username=“假用户名”--password=“假密码”--changelogfile=/users/nsalvi/downloads/liquibase-example-master-2/src/main/resources/db/dbchangelog.xml更新

上面我引用的是本地的驱动程序类路径。

我的pom片段如下所示:

    <plugin>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>${liquibase.version}</version>
        <configuration>
            <propertyFileWillOverride>true</propertyFileWillOverride>
            <propertyFile>src/main/resources/liquibase.properties</propertyFile>
        </configuration>
        <executions>
            <execution>
                <phase>process-resources</phase>
                <goals>
                     <goal>update</goal>
                </goals>
            </execution>
         </executions>
         <dependencies>
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>${oracle.version}</version>
            </dependency>
         </dependencies>
    </plugin>

当我运行maven安装时,我得到非身份验证协议错误。我的数据库更改日志如下:

contexts: local 
changeLogFile: db/dbChangelog.xml
driver: oracle.jdbc.OracleDriver
url: fake url
username: fake username
password: fake password
verbose: true 
dropFirst: false 
    <databaseChangeLog
  xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.8"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.8
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.8.xsd">
    <preConditions>
        <dbms type="oracle" />
        <runningAs username="fake" />
    </preConditions>

    <changeSet id="1" author="nishant">
        <preConditions onFail="WARN">
            <sqlCheck expectedResult="9">select count(*) from CA_PROJECT_T</sqlCheck>
        </preConditions>
        <comment>Comments should go after preCondition. If they are before then liquibase usually gives error.</comment>
    </changeSet>
</databaseChangeLog>

共有1个答案

左丘修齐
2023-03-14

您可以使用以下阶段之一(摘自maven网站):验证-验证项目是正确的,并且所有必要的信息都是可用的

  • 编译-编译项目的源代码
  • 测试-使用合适的单元测试框架测试编译的源代码。这些测试不应要求打包或部署代码
  • 打包-获取已编译的代码,并将其打包为可分发的格式,如JAR。
  • 验证-运行对集成测试结果的任何检查,以确保满足质量标准
  • 安装-将包安装到本地存储库中,以便在本地其他项目中作为依赖项使用
  • 部署-在生成环境中完成,将最终包复制到远程存储库,以便与其他开发人员和项目共享。
 类似资料:
  • 我试图设置jenkins-kubernetes插件创建Jenkins动态奴隶。 我的詹金斯在K8s集群外运行。 链接:https://github.com/jenkinsci/kubernetes-plugin 我的jenkins版本是2.60.2和Kubernetes插件版本是1.1.2 我按照自述文件中提到的步骤成功地建立了连接。 Kubernetes没有豆荚开始。这很奇怪。 我不确定我做错了

  • 添加后我收到了这些消息 到我的文件,这让我认为proGuard和它的库安装得很好。但是尝试使用或检查只会给我一个错误 或 我还尝试将同样的内容放入还是没有运气。还尝试将其置于具有相同的结果。如果我在SBT提示符下尝试,它会告诉我 但我似乎根本无法运行它。我做错了什么?

  • 我正在尝试让Gradle Artifactory插件来解析工件。 我的build.gradle文件在下面,被替换为正确的主机名 然而,当运行此命令时,它无法解析工件。依赖行是从artiFactory生成的。 我打算使用“旧”发布机制。我的Gradle版本是2.0。 我尝试了一个带有maven2默认值和gradle布局的artifactory存储库。 堆栈跟踪可在以下位置找到:http://text

  • 证书未到期续订,但模拟试运行续订无法选择合适的插件:nginx插件不工作;您现有的配置可能存在问题。错误是:NoInstallationError()尝试从 /etc/letsencrypt/renewal/api.shunhinggaoke.com.conf续订证书(api.shunhinggaoke.com)产生了意外错误:nginx插件不工作;您现有的配置可能存在问题。错误是:NoInsta

  • 我需要从shade插件中排除log4j工件,以避免log4j漏洞,但是,artifactSet下的exclude标记似乎不起作用。有没有解决这个问题的建议? 我不断发现以下错误:未能执行目标组织。阿帕奇。专家插件:maven shade插件:3.2.4:shade(默认值)on project:目标组织的执行默认值。阿帕奇。专家插件:maven shade插件:3.2.4:shade失败:插件组织

  • 我很难让Grails中的Quartz工作按预期同时运行。这就是我的工作。我已经注释掉了使用Executor插件的代码行,但是当我没有注释掉它们时,我的代码会按预期工作。 就我而言,myService2。doOtherStuff()需要很长时间才能完成,这与下一次触发此作业的时间重叠。我不介意它们是否重叠,这就是我明确添加def concurrent=true的原因,但它不起作用。 我有Quartz