Looking for help with Maven configuration

POSTED 19 May 2010 by Nathan Voxland

Part of the delay of the next 2.0 RC is that I want that release to include a 2.0 snapshot in the maven repository for people to try. Unfortunately, I have determined that my maven skills are not what I need them to be to make this happen, and am hoping I can get some help.

If you look at the liquibase source from http://liquibase.jira.com/source/browse/CORE you’ll see that we have what is probably an uncommon source configuration–which is the root of a lot of my maven issues.

The main source is broken up into three major sub-modules:

  • liquibase-core
  • liquibase-core-jvm
  • liquibase-maven-plugin

each with its own pom.xml. The general idea is that the liquibase-core and liquibase-core-jvm modules are compiled and combined into a single jar file that is released as liquibase-core.jar while the liquibase-maven-plugin module is released independently. There is a liquibase-dist module that attempts to bind everything together in to liquibase-core, but I’m not sure if it is really doing it all correctly.

Prior to 2.0, liquibase was build using Ant and we do have a repository on sourceforge that is rsynced with the central maven repository. The old process used an ant task to update a local copy of that maven repository and I would upload the new/changed files to the sourceforge site manually.

The main questions that I know of currently are:

  1. How do I get maven to create the “liquibase-core “ module to release to the maven repository?
  2. What is the best way to create and release it? I would like the process to be based on builds from the build server, not based on building the modules locally
  3. What improvements should I make to the module structure?
  4. Is what I am trying to do too much for maven’s preferred way of doing things?
  5. What should I be doing to help OSGi support?

Missing, incomplete or wrong information? Please send a pull request