spotify / docker-maven-plugin

INACTIVE: A maven plugin for Docker
Apache License 2.0
2.66k stars 575 forks source link

exec 'mvn docker:build' -> 'java.lang.ClassNotFoundException org.apache.http.client.methods.HttpUriRequest' #308

Closed qingmu-io closed 6 years ago

qingmu-io commented 7 years ago

Description

Hi~ I try to run docker:build,An exception was thrown

[Add feature/bug description here]

How to reproduce

[Add steps on how to reproduce this issue]

What do you expect

[Describe what do you expect to happen]

What happened instead

[Describe the actual results]

Software:

Full backtrace

Number of foreign imports: 1
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------

        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:166)
        ... 21 more
Caused by: java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
        at com.spotify.docker.AbstractDockerMojo.getBuilder(AbstractDockerMojo.java:146)
        at com.spotify.docker.AbstractDockerMojo.buildDockerClient(AbstractDockerMojo.java:153)
        at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:138)
        at com.spotify.docker.BuildMojo.execute(BuildMojo.java:86)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        ... 21 more
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
        at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
        at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
        ... 26 more
thomasjtaylor commented 7 years ago

I had a similar problem. After adding a Maven plugin dependency for org:apache.httpcomponents:4.5.2 (fixed the ClassNotFoundException: HttpUriRequest), I encountered another ClassNotFoundException: GZipCompressorOutputStream). After adding org.apache.commons:commons-compress:1.13, docker-maven-plugin worked for me.

Environment:

<build>
    <plugins>
        <plugin>
              <groupId>com.spotify</groupId>
              <artifactId>docker-maven-plugin</artifactId>
              <version>0.4.13</version>
              <configuration>
                <imageName>infotechsoft/gt-analysis</imageName>
                <dockerDirectory>src/main/docker</dockerDirectory>
                <resources>
                   <resource>
                     <targetPath>/</targetPath>
                     <directory>${project.build.directory}</directory>
                     <include>${project.build.finalName}.jar</include>
                   </resource>
                </resources>
              </configuration>
              <dependencies>
                <dependency>
                   <groupId>org.apache.httpcomponents</groupId>
                   <artifactId>httpclient</artifactId>
                   <version>4.5.2</version>
                </dependency>
                <dependency>
                   <groupId>org.apache.commons</groupId>
                   <artifactId>commons-compress</artifactId>
                   <version>1.13</version>
                 </dependency>
            </dependencies>
         </plugin>      
         </plugins>
</build>
davidxia commented 6 years ago

Looks like a maven dependency issue instead of something specific to this project.