Git Product home page Git Product logo

Comments (2)

stevesaliman avatar stevesaliman commented on July 25, 2024

The short answer for this request is to put liquibaseTaskPrefix=abc in your project's gradle.properties file. Doing this will meet your goal of not having to put it on the command line.

There is no good way use the liquibase configuration to change how the Liquibase tasks get created. Unless you're really interested in the technical details, you can probably stop reading here 😃

The long answer as to why there is no good way to do this has to do with order that Gradle does things, which looks like this:

  1. Gradle applies the plugin when it sees apply plugin or a plugins block in build.gradle
  2. The liquibase plugin creates the liquibase configuration and adds all the tasks when the plugin is applied.
  3. Gradle processes the liquibase configuration when it reaches it in the build.gradle file.
  4. Gradle runs requested tasks, with the right configuration.

This ordering causes some limitations for us with regard to defining task prefixes in the configuration.

  • We can't put the liquibase block above the apply plugin code in build.gradle because the configuration does not exist until the plugin is applied.
  • The plugin does currently create tasks before it creates the liquibase configuration, but we can't just switch the order because defining the configuration and processing it happen at different times.
  • We might be able to do something weird like deferring the task creation until the liquibase configuration is processed, but this is counter to the convention of creating tasks when the plugin is applied, and would lead to some rather unexpected results if anyone ever tried to use the tasks in dependencies.
  • We might also be able to rename tasks when we process the liquibase configuration, but that would create all of the same problems as above.

The bottom line is that tasks get created before configurations are processed. A configuration is designed to affect how a plugin runs, not how the plugin is applied. This limitation is what led me to use Gradle properties to define the prefix task prefix. Properties will always exist before the plugin gets applied, and putting them in gradle.properties is just as good as having them in a configuration if you're looking for a permanent prefix for all users.

from liquibase-gradle-plugin.

Bwvolleyball avatar Bwvolleyball commented on July 25, 2024

That's not exactly the best answer for someone looking to wrap this plugin with their own specific needs, this is unfortunate, because I wanted to handle the setting of this property in my plugin, not with a specific, random property I need to add to every project that uses my plugin.

from liquibase-gradle-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.