Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-4365

The Maven build can't directly handle complex inter-module dependencies involving the test-framework modules


    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 4.0, 6.0
    • general/build
    • None
    • New, Patch Available


      The Maven dependency model disallows cyclic dependencies, of which there are now several in the Ant build (considering test and compile dependencies together, as Maven does). All of these cycles involve either the Lucene test-framework or the Solr test-framework.

      The current Maven build works around this problem by incorporating dependencies' sources into dependent modules' test sources, rather than literally declaring the problematic dependencies as such. (See SOLR-3780 for a recent example of putting this workaround in place for the Solrj module.)

      But with the factoring out of the Lucene Codecs module, upon which Lucene test-framework has a compile-time dependency, the complexity of the workarounds required to make it all hang together is great enough that I want to attempt a (Maven-build-only) module refactoring. It should require fewer contortions and be more maintainable.

      The Maven build is currently broken, as of the addition of the Codecs module (LUCENE-4340).


        1. lucene.solr.cyclic.dependencies.removed.png
          30 kB
          Steven Rowe
        2. lucene.solr.dependency.cycles.png.jpg
          39 kB
          Steven Rowe
        3. LUCENE-4365.patch
          64 kB
          Steven Rowe
        4. LUCENE-4365.patch
          61 kB
          Steven Rowe



            sarowe Steven Rowe
            sarowe Steven Rowe
            0 Vote for this issue
            2 Start watching this issue