skip to Main Content

I want to add a separate dependency layer to my dockerfile.

I’m running mvn dependencies:go-offline but after that mvn install -o reports that not all deps are found. After inspecting the error message it turned out that no transitive dependencies were downloading. The issue was fixed by explicitly defining all missing packages in pom.xml, but obviously it’s not ideal.

This is my dockerfile

// copy pom.xml

RUN ./mvnw dependency:go-offline

// copy source code

RUN ./mvnw install -o

Is there an alternative to dependency:go-offline, or a flag for that command, that will download all dependencies needed to run install -o, not just direct ones?

UPD:
This are the missing dependencies

[WARNING] The POM for javax.xml.bind:jaxb-api:jar:2.3.1 is missing, no dependency information available
[WARNING] The POM for net.bytebuddy:byte-buddy:jar:1.11.22 is missing, no dependency information available
[WARNING] The POM for org.glassfish.jaxb:jaxb-runtime:jar:2.3.6 is missing, no dependency information available
[WARNING] The POM for org.hamcrest:hamcrest-core:jar:2.2 is missing, no dependency information available
[WARNING] The POM for org.webjars:webjars-locator-core:jar:0.48 is missing, no dependency information available
[WARNING] The POM for org.apache.httpcomponents:httpcore:jar:4.4.15 is missing, no dependency information available
[WARNING] The POM for commons-codec:commons-codec:jar:1.15 is missing, no dependency information available

2

Answers


  1. I faced the same issue. For some reason, dependency:go-offline doesn’t add pom files to the local repository.

    Instead, use mvn verify followed by mvn package:

    // copy pom.xml
    RUN ./mvnw verify --fail-never
    
    // copy source code
    RUN ./mvnw package -DskipTests -o
    

    Check out a similar topic here.

    Login or Signup to reply.
  2. According to the comments on issue discussion there were some improvements related to dependency resolution and fetching in newer versions of maven-dependency-plugin (starting with 3.0.0). However by default maven uses version 2.8 of dependency plugin. So in order to use recent versions specify version explicitly:

    // copy pom.xml
    
    RUN ./mvnw org.apache.maven.plugins:maven-dependency-plugin:3.5.0:go-offline
    
    // copy source code
    
    RUN ./mvnw install -o
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search