Maven-Docker java.lang.NoClassDefFoundError:org/apache/http/client/methods/HttpUriRequest

Maven-Docker java.lang.NoClassDefFoundError:org/apache/http/client/methods/HttpUriRequest,java,docker,maven,Java,Docker,Maven,我在两个java类上使用IntelliJ和Maven,这两个类在调试模式下运行良好,但在编译和创建docker映像之后就没有了 当我从推送到DockerHub存储库的图像创建容器(使用docker compose)时,我会在de docker日志中收到此错误 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest a

我在两个java类上使用IntelliJ和Maven,这两个类在调试模式下运行良好,但在编译和创建docker映像之后就没有了

当我从推送到DockerHub存储库的图像创建容器(使用docker compose)时,我会在de docker日志中收到此错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
    at com.myproject.station.StationService.createWorkers(StationService.java:38)
...
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
pom.xml中,我列出了org.apache.httpcomponents的依赖项httpclient和httpcore:

这个插件呢

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
然后我使用此命令按下图像

docker push myrepository/station:2.0
创建此图像的容器时出错。 我无法理解错误是否为:

  • 关于pom.xml
  • 或者我如何编译(和创建)图像
  • 或者,如果没有正确运行,则将映像推送到存储库(然后它总是得到错误的第一个映像)
这是pom.xml依赖关系树的底部

提前感谢您的建议

<groupId>com.myproyect</groupId>
<artifactId>http-opendata</artifactId>
<version>2.0</version>

<properties>
    <avro.version>1.8.2</avro.version>
    <kafka.version>0.11.0.1</kafka.version>
    <confluent.version>3.3.1</confluent.version>
    <jib-maven-plugin.version>2.5.0</jib-maven-plugin.version>
</properties>

<!--necessary to resolve confluent dependencies-->
<repositories>
    <repository>
        <id>confluent</id>
        <url>http://packages.confluent.io/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
    </dependency>
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.4.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.6.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.avro/avro -->
    <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>${kafka.version}</version>
    </dependency>

    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-avro-serializer</artifactId>
        <version>${confluent.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.google.cloud.tools/jib-maven-plugin -->
    <dependency>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-maven-plugin</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <excludes>
                                <exclude>classworlds:classworlds</exclude>
                                <exclude>junit:junit</exclude>
                                <exclude>jmock:*</exclude>
                                <exclude>*:xml-apis</exclude>
                                <exclude>org.apache.maven:lib:tests</exclude>
                                <exclude>log4j:log4j:jar:</exclude>
                            </excludes>
                        </artifactSet>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!--for specific record-->
        <plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>${avro.version}</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>schema</goal>
                        <goal>protocol</goal>
                        <goal>idl-protocol</goal>
                    </goals>
                    <configuration>
                        <sourceDirectory>${project.basedir}/src/main/resources/avro</sourceDirectory>
                        <stringType>String</stringType>
                        <createSetters>false</createSetters>
                        <enableDecimalLogicalType>true</enableDecimalLogicalType>
                        <fieldVisibility>private</fieldVisibility>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!--force discovery of generated classes-->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>target/generated-sources/avro</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>${jib-maven-plugin.version}</version>
            <configuration>
                <container>
                    <mainClass>com.myproject.StationHost</mainClass>
                    <args>
                        <arg>/opt/myproyect/station/properties</arg>
                    </args>
                </container>
                <from>
                    <image>openjdk:8u212-jre</image>
                </from>
                <to>
                    <image>soits/station:${project.version}</image>
                </to>
                <extraDirectories>
                    <paths>/opt/myproject/station</paths> <!-- Copies files from 'src/main/custom-extra-dir' -->
                    <permissions>
                        <permission>
                            <file>/opt/myproject/station/properties</file>
                            <mode>755</mode> <!-- Read/write/execute for owner, read/execute for group/other -->
                        </permission>
                    </permissions>
                </extraDirectories>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

有什么建议吗?我找不到解决这个问题的办法。最后一个解决方法是对httpcore和httpclient使用相同的版本4.4.1。提前谢谢!
<groupId>com.myproyect</groupId>
<artifactId>http-opendata</artifactId>
<version>2.0</version>

<properties>
    <avro.version>1.8.2</avro.version>
    <kafka.version>0.11.0.1</kafka.version>
    <confluent.version>3.3.1</confluent.version>
    <jib-maven-plugin.version>2.5.0</jib-maven-plugin.version>
</properties>

<!--necessary to resolve confluent dependencies-->
<repositories>
    <repository>
        <id>confluent</id>
        <url>http://packages.confluent.io/maven/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.13</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
    </dependency>
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.4.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.20</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.6.1</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.avro/avro -->
    <dependency>
        <groupId>org.apache.avro</groupId>
        <artifactId>avro</artifactId>
        <version>${avro.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>${kafka.version}</version>
    </dependency>

    <dependency>
        <groupId>io.confluent</groupId>
        <artifactId>kafka-avro-serializer</artifactId>
        <version>${confluent.version}</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.google.cloud.tools/jib-maven-plugin -->
    <dependency>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-maven-plugin</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <excludes>
                                <exclude>classworlds:classworlds</exclude>
                                <exclude>junit:junit</exclude>
                                <exclude>jmock:*</exclude>
                                <exclude>*:xml-apis</exclude>
                                <exclude>org.apache.maven:lib:tests</exclude>
                                <exclude>log4j:log4j:jar:</exclude>
                            </excludes>
                        </artifactSet>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.8</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!--for specific record-->
        <plugin>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro-maven-plugin</artifactId>
            <version>${avro.version}</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>schema</goal>
                        <goal>protocol</goal>
                        <goal>idl-protocol</goal>
                    </goals>
                    <configuration>
                        <sourceDirectory>${project.basedir}/src/main/resources/avro</sourceDirectory>
                        <stringType>String</stringType>
                        <createSetters>false</createSetters>
                        <enableDecimalLogicalType>true</enableDecimalLogicalType>
                        <fieldVisibility>private</fieldVisibility>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!--force discovery of generated classes-->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-source</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>target/generated-sources/avro</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>${jib-maven-plugin.version}</version>
            <configuration>
                <container>
                    <mainClass>com.myproject.StationHost</mainClass>
                    <args>
                        <arg>/opt/myproyect/station/properties</arg>
                    </args>
                </container>
                <from>
                    <image>openjdk:8u212-jre</image>
                </from>
                <to>
                    <image>soits/station:${project.version}</image>
                </to>
                <extraDirectories>
                    <paths>/opt/myproject/station</paths> <!-- Copies files from 'src/main/custom-extra-dir' -->
                    <permissions>
                        <permission>
                            <file>/opt/myproject/station/properties</file>
                            <mode>755</mode> <!-- Read/write/execute for owner, read/execute for group/other -->
                        </permission>
                    </permissions>
                </extraDirectories>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
[INFO] 
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ http-opendata ---
[INFO] com.consorcio.aguas:http-opendata:jar:2.0
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.12:compile
[INFO] |  +- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  \- commons-codec:commons-codec:jar:1.11:compile
[INFO] +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
[INFO] +- org.apache.commons:commons-compress:jar:1.13:compile
[INFO] +- org.json:json:jar:20140107:compile
[INFO] +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] |  +- net.minidev:json-smart:jar:2.3:compile
[INFO] |  |  \- net.minidev:accessors-smart:jar:1.2:compile
[INFO] |  \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- mysql:mysql-connector-java:jar:8.0.20:compile
[INFO] |  \- com.google.protobuf:protobuf-java:jar:3.6.1:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.6.1:compile
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.6.1:compile
[INFO] +- org.apache.avro:avro:jar:1.8.2:compile
[INFO] |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |  +- com.thoughtworks.paranamer:paranamer:jar:2.7:compile
[INFO] |  +- org.xerial.snappy:snappy-java:jar:1.1.1.3:compile
[INFO] |  \- org.tukaani:xz:jar:1.5:compile
[INFO] +- org.apache.kafka:kafka-clients:jar:0.11.0.1:compile
[INFO] |  \- net.jpountz.lz4:lz4:jar:1.3.0:compile
[INFO] +- io.confluent:kafka-avro-serializer:jar:3.3.1:compile
[INFO] |  +- io.confluent:kafka-schema-registry-client:jar:3.3.1:compile
[INFO] |  |  \- org.slf4j:slf4j-log4j12:jar:1.7.21:compile
[INFO] |  |     \- log4j:log4j:jar:1.2.17:compile
[INFO] |  +- io.confluent:common-config:jar:3.3.1:compile
[INFO] |  \- io.confluent:common-utils:jar:3.3.1:compile
[INFO] |     +- org.apache.zookeeper:zookeeper:jar:3.4.10:compile
[INFO] |     |  +- jline:jline:jar:0.9.94:compile
[INFO] |     |  \- io.netty:netty:jar:3.10.5.Final:compile
[INFO] |     \- com.101tec:zkclient:jar:0.10:compile
[INFO] +- com.google.code.gson:gson:jar:2.8.5:compile
[INFO] \- com.google.cloud.tools:jib-maven-plugin:jar:1.6.1:compile
[INFO]    +- com.google.http-client:google-http-client:jar:1.27.0:runtime
[INFO]    |  +- com.google.code.findbugs:jsr305:jar:3.0.2:runtime
[INFO]    |  \- com.google.j2objc:j2objc-annotations:jar:1.1:runtime
[INFO]    +- com.google.auth:google-auth-library-oauth2-http:jar:0.16.2:runtime
[INFO]    |  +- com.google.auth:google-auth-library-credentials:jar:0.16.2:runtime
[INFO]    |  \- com.google.http-client:google-http-client-jackson2:jar:1.30.1:runtime
[INFO]    +- com.google.guava:guava:jar:28.0-jre:runtime
[INFO]    |  +- com.google.guava:failureaccess:jar:1.0.1:runtime
[INFO]    |  +- com.google.guava:listenablefuture:jar:9999.0-empty-to-avoid-conflict-with-guava:runtime
[INFO]    |  +- org.checkerframework:checker-qual:jar:2.8.1:runtime
[INFO]    |  +- com.google.errorprone:error_prone_annotations:jar:2.3.2:runtime
[INFO]    |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.17:runtime
[INFO]    +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.9.2:compile
[INFO]    |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO]    |  \- com.fasterxml.jackson.core:jackson-core:jar:2.9.9:compile
[INFO]    +- org.ow2.asm:asm:jar:7.0:compile
[INFO]    +- org.apache.maven:maven-plugin-api:jar:3.5.2:runtime
[INFO]    |  +- org.apache.maven:maven-model:jar:3.5.2:runtime
[INFO]    |  +- org.apache.maven:maven-artifact:jar:3.5.2:runtime
[INFO]    |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.3:runtime
[INFO]    |  |  \- javax.enterprise:cdi-api:jar:1.0:runtime
[INFO]    |  |     \- javax.annotation:jsr250-api:jar:1.0:runtime
[INFO]    |  +- org.codehaus.plexus:plexus-utils:jar:3.1.0:runtime
[INFO]    |  \- org.codehaus.plexus:plexus-classworlds:jar:2.5.2:runtime
[INFO]    \- org.apache.maven:maven-core:jar:3.5.2:runtime
[INFO]       +- org.apache.maven:maven-settings:jar:3.5.2:runtime
[INFO]       +- org.apache.maven:maven-settings-builder:jar:3.5.2:runtime
[INFO]       |  +- org.codehaus.plexus:plexus-interpolation:jar:1.24:runtime
[INFO]       |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.4:runtime
[INFO]       |     \- org.sonatype.plexus:plexus-cipher:jar:1.4:runtime
[INFO]       +- org.apache.maven:maven-builder-support:jar:3.5.2:runtime
[INFO]       +- org.apache.maven:maven-repository-metadata:jar:3.5.2:runtime
[INFO]       +- org.apache.maven:maven-model-builder:jar:3.5.2:runtime
[INFO]       +- org.apache.maven:maven-resolver-provider:jar:3.5.2:runtime
[INFO]       +- org.apache.maven.resolver:maven-resolver-impl:jar:1.1.0:runtime
[INFO]       +- org.apache.maven.resolver:maven-resolver-api:jar:1.1.0:runtime
[INFO]       +- org.apache.maven.resolver:maven-resolver-spi:jar:1.1.0:runtime
[INFO]       +- org.apache.maven.resolver:maven-resolver-util:jar:1.1.0:runtime
[INFO]       +- org.apache.maven.shared:maven-shared-utils:jar:3.1.0:runtime
[INFO]       |  \- commons-io:commons-io:jar:2.5:runtime
[INFO]       +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.3:runtime
[INFO]       +- com.google.inject:guice:jar:no_aop:4.0:runtime
[INFO]       |  \- aopalliance:aopalliance:jar:1.0:runtime
[INFO]       +- javax.inject:javax.inject:jar:1:runtime
[INFO]       +- org.codehaus.plexus:plexus-component-annotations:jar:1.7.1:runtime
[INFO]       \- org.apache.commons:commons-lang3:jar:3.5:runtime
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------