【问题标题】:How can I override the JVM timezone on maven runs?如何在 Maven 运行时覆盖 JVM 时区?
【发布时间】:2020-02-05 16:32:10
【问题描述】:

我使用 maven 运行单元和集成测试,以及 flyway 迁移。我的机器时区设置为 +2:00。如何覆盖它,以便所有由 maven 触发的操作,例如:

mvn flyway:migrate 

使用 UTC 作为时区?

【问题讨论】:

    标签: maven flyway


    【解决方案1】:

    当您像这样配置 flyway 插件时,您可以在应用程序的 pom.xml 上配置 TimeZone。

           <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>6.0.4</version>
                <configuration>
                    <user.timezone>UTC</user.timezone> //In case of Java 7 or
                    <argLine>-Duser.timezone=UTC</argLine> //Incase of Java 8 and above. 
                </configuration>
            </plugin>
    

    您可以参考this 答案了解更多详情,this 了解 Flyway maven 配置的详细信息。

    【讨论】:

    • 执行此操作后,似乎 jdbc 连接 flyway 仍在使用我的本地机器时区,并且数据库将我的日期时间文字解释为在 +2:00 stackoverflow.com/questions/58285143/…
    • 有些jdbc驱动需要在jdbc url中配置。例如,jdbc:mysql://localhost:3306/db?useLegacyDatetimeCode=false&amp;serverTimezone=UTC
    【解决方案2】:

    一位同事对 maven 调用提出了以下论点

    mvn <target> -Duser.timezone=UTC
    

    【讨论】:

      猜你喜欢
      • 2015-08-03
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2015-08-11
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多