Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-3021

Umbrella: Migrate project structure to Maven build

    XMLWordPrintableJSON

Details

    Description

      In multiple steps, Maven should replace current ant build in ZooKeeper.

      First phase - separate project structure that requires no code change:

      zookeeper
      |-bin
      |-conf
      |-zk-client
      | |-zk-client-c
      |-zk-contrib
      | |-zk-contrib-fatjar
      | |-zk-contrib-huebrowser
      | |-zk-contrib-loggraph
      | |-zk-contrib-monitoring
      | |-zk-contrib-rest
      | |-zk-contrib-zkfuse
      | |-zk-contrib-zkperl
      | |-zk-contrib-zkpython
      | |-zk-contrib-zktreeutil
      | \-zk-contrib-zooinspector
      |-zk-docs
      |-zk-it (integration tests)
      |-zk-server
      |-zk-recipes
      | |-zk-recipes-election
      | |-zk-recipes-lock
      \ \-zk-recipes-queue
      

       
       
      Second phase - separate modules that require code changes:

      zookeeper
      |-bin
      |-conf
      *|-jute*
      |-zk-client
      | |-zk-client-c
      *| |-zk-client-java* (separated from zk-server)
      *| \-zk-client-go* (or any other language)
      *|-zk-common*
      |-zk-contrib
      | |-zk-contrib-fatjar
      | |-zk-contrib-huebrowser
      | |-zk-contrib-loggraph
      | |-zk-contrib-monitoring
      | |-zk-contrib-rest
      | |-zk-contrib-zkfuse
      | |-zk-contrib-zkperl
      | |-zk-contrib-zkpython
      | |-zk-contrib-zktreeutil
      | \-zk-contrib-zooinspector
      |-zk-docs
      |-zk-it (integration tests)
      |-zk-server
      |-zk-recipes
      | |-zk-recipes-election
      | |-zk-recipes-lock
      \ \-zk-recipes-queue
      

       
      Every module will have the same maven structure:

      zk-something
      |-src
      | |-main
      | | |-java
      | | | \org...
      | | \resources
      | \test (unit tests only?)
      | |-java
      | | \org...
      | \resources
      \pom.xml (build.xml, build.gradle?)
      

      There is already ZOOKEEPER-1078, but it's main approach is to create a maven proxy on top of ant.
      The main idea here is to replace ant with "pure" maven, and update the project structure accordingly.

      It is also worth noting, that backporting only the package changes to 3.4 is a good practice for future backport commits. Maven build implementation not needed, just the directory structuro to be compatible with 3.5/master.

      Attachments

        Issue Links

          Activity

            People

              nkalmar Norbert Kalmár
              nkalmar Norbert Kalmár
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 67.5h
                  67.5h