#maven #liquibase
#maven #liquibase
Вопрос:
Кто-нибудь, кто является более опытным пользователем maven, вероятно, может мне здесь помочь:
как мне передать «необязательные параметры» в liquibase при запуске его в качестве цели maven?
Я хочу передать «changesToApply», см.http://www.liquibase.org/manual/maven_updatesql
Но каков синтаксис? Что-то вроде этого, но не совсем:
mvn liquibase:updateSQL -DchangesToApply=2
Ответ №1:
Короткий ответ:
mvn liquibase:updateSQL -Dliquibase.changesToApply=2
Длинный ответ
Перейдите к интересующему вас параметру и найдите его выражение. http://www.liquibase.org/manual/maven_updatesql#changesToApply
Ищите
changesToApply:
The number of changes to apply to the database. By default this value is 0, which will result in all changes (not already applied to the database) being applied.
Type: int
Required: No
Expression: ${liquibase.changesToApply}
Default: 0
Из этого вы можете видеть, что выражение ${liquibase.changesToApply}
Expression: ${liquibase.changesToApply}
Это то, что вы должны использовать
Комментарии:
1. Ага! Тогда я был довольно близок, просто не хватало «liquibase».. Отказ от ответственности: я этого не пробовал.
Ответ №2:
Из руководства по плагину Maven Liquibase
Все параметры для выполнения плагина Maven Liquibase также могут быть указаны в
<configuration>
разделе плагина. Ниже приведен пример этого:
[...]
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<changeLogFile>src/main/resources/org/liquiabse/business_table.xml</changeLogFile>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@tf-appserv-linux:1521:xe</url>
<username>liquibaseTest</username>
<password>pass</password>
</configuration>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
[...]
Ответ №3:
Вот как я это делаю: mvn liquibase:updateSQL -P mysql -DskipTests -Dliquibase.changeLogFile=create.xml
где находится мой файл журнала изменений «create.xml «и «mysql» — предварительно настроенный профиль для заполнения моего файла свойств базы данных.
убедитесь, однако, что файл журнала изменений не жестко запрограммирован в файле liquibase.properties и убедитесь, что вы перестроили модуль, потому что цель maven будет использовать liquibase.properties в каталоге target / classes модуля
Ответ №4:
Для версии 3.5.5 должно выходить наружу <executions>
, как показано ниже:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<changeLogFile>src/main/resources/org/liquibase/business_table.xml</changeLogFile>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@tf-appserv-linux:1521:xe</url>
<username>liquibaseTest</username>
<password>pass</password>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>