Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-3559

Multi-Module Project: module that depends on sibling test jar cannot execute test-compile without install of sibling first

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 2.0.8, 2.0.9
    • None
    • Bootstrap & Build
    • None

    Description

      We have project with a few sibling modules:

      Project
      ----moduleA
                +-- /src/main/java (Common Code)
                +-- /src/test/java    (Common Test Framework)
      ----moduleB
      ----moduleC
                +-- /src/main/java (Production Code, depends on moduleA Common code)
                +-- /src/test/java    (Production Test Framework, depends on moduleA Common Test Framework)
      

      I dont think there is anything wrong with this project in concept. moduleC's "main" code depends son moduleA's "main" code, and moduleC's test code depends on moduleA's test code.

      This works if I run 'mvn install', but for rapid development, we often run single unit tests and need to be able to run "mvn test" from the top level project, which fails.

      For an example, download the attached project and run "mvn test" from the trunk directory. It will fail with the error pasted below. Then, run "mvn install" and everything works ok. We should be able to run our unit tests without having to install first.

      [INFO] ------------------------------------------------------------------------
      [ERROR] BUILD ERROR
      [INFO] ------------------------------------------------------------------------
      [INFO] Failed to resolve artifact.

      Missing:
      ----------
      1) com.kiva.demoPom:moduleA:test-jar:tests:0.0.1-SNAPSHOT

      Try downloading the file manually from the project website.

      Then, install it using the command:
      mvn install:install-file -DgroupId=com.kiva.demoPom -DartifactId=moduleA -Dversion=0.0.1-SNAPSHOT -Dclassifier=tests -Dpackaging=test-jar -Dfile=/path/to/file

      Alternatively, if you host your own repository you can deploy the file there:
      mvn deploy:deploy-file -DgroupId=com.kiva.demoPom -DartifactId=moduleA -Dversion=0.0.1-SNAPSHOT -Dclassifier=tests -Dpackaging=test-jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

      Path to dependency:
      1) com.kiva.demoPom:moduleC:jar:0.0.1-SNAPSHOT
      2) com.kiva.demoPom:moduleA:test-jar:tests:0.0.1-SNAPSHOT

      ----------
      1 required artifact is missing.

      for artifact:
      com.kiva.demoPom:moduleC:jar:0.0.1-SNAPSHOT

      from the specified remote repositories:
      central (http://repo1.maven.org/maven2)

      Attachments

        1. demoPom-0.0.2-src.tgz
          68 kB
          Josh Chaitin-Pollak
        2. demoPom.tgz
          68 kB
          Josh Chaitin-Pollak
        3. ActiveProjectTestJar-r2-2.0.9.patch
          3 kB
          Josh Chaitin-Pollak
        4. ActiveProjectTestJar-2.0.9.patch
          2 kB
          Josh Chaitin-Pollak

        Issue Links

          Activity

            People

              schulte77 Christian Schulte
              jpollak Josh Chaitin-Pollak
              Votes:
              9 Vote for this issue
              Watchers:
              17 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: