maven error : package io.kubernetes.client.apis does not exist

maven error : package io.kubernetes.client.apis does not exist

我是 maven 和 junit 的新手。我试图构建一个 Maven 项目,我想通过它尝试 kubernetes 官方 java 客户端 api 示例。编译 pom.xml 文件时遇到错误。我正在尝试使用命令行 运行 Maven 项目。为了编译 pom.xml 文件,我使用了“mvn clean package install”

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>

                <groupId>ocp</groupId>
                <artifactId>DemoTest</artifactId>
                <version>14.0.1</version>
                <packaging>jar</packaging>
        <properties>
                <java.version>1.8</java.version>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
                <maven-plugin-version>1.0.0</maven-plugin-version>
                <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>

        <prerequisites>
          <maven>2.2.0</maven>
        </prerequisites>


        <dependencies>
                <dependency>
                        <groupId>io.kubernetes</groupId>
                        <artifactId>client-java-api</artifactId>
                        <version>${project.version}</version>
                        <scope>compile</scope>
                        <type>pom</type>
                </dependency>
                <dependency>
                        <groupId>io.kubernetes</groupId>
                        <artifactId>client-java</artifactId>
                        <version>${project.version}</version>
                        <scope>compile</scope>
                        <type>pom</type>
                </dependency>
                <dependency>
                        <groupId>io.kubernetes</groupId>
                        <artifactId>client-java-proto</artifactId>
                        <version>14.0.0</version>
                        <scope>compile</scope>
                        <type>pom</type>
                </dependency>
               
                <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                        <version>4.11</version>
                        <scope>test</scope>
                </dependency>

        </dependencies>

        <build>
                <plugins>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-deploy-plugin</artifactId>
                                <version>2.8.2</version>
                                <configuration>
                                        <skip>true</skip>
                                </configuration>
                        </plugin>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-surefire-plugin</artifactId>
                                <version>3.0.0-M5</version>
                        </plugin>
                </plugins>
        </build>

</project>

错误:-

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[3,28] package io.kubernetes.client does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[4,28] package io.kubernetes.client does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[5,28] package io.kubernetes.client does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[6,33] package io.kubernetes.client.apis does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[7,35] package io.kubernetes.client.models does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[8,35] package io.kubernetes.client.models does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[9,33] package io.kubernetes.client.util does not exist
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[14,64] cannot find symbol
  symbol:   class ApiException
  location: class ocp.App
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[15,9] cannot find symbol
  symbol:   class ApiClient
  location: class ocp.App
[ERROR] /mnt/d/junit/test/new/DemoTest/src/main/java/ocp/App.java:[15,28] cannot find symbol
  symbol:   variable Config
  location: class ocp.App

请指出我遗漏了什么。

您不需要“pom”类型的依赖项 - 只需删除此行并尝试重建。

Maven 将尝试将依赖项(通过从集中存储库下载)“引入”到您的类路径中。在 java 中,像这样的依赖项是 jar。 所以这就是我认为的问题

此外,compile 无论如何都是默认范围,因此您可以省略它。 此外,project.version 指出您产品的版本,可能您需要特定版本的依赖项,例如 14.0.1(maven central 中可用的最后一个版本)

可能是巧合,你自己的项目也有完全相同的版本(14.0.1)。我看不出这样做的理由,您可以使用与 k8s 无关的您自己的版本开始您的项目 java 客户端版本)

例如,您可以使用 1.0-SNAPSHOT

依赖项定义的示例(如您在问题标题中所述的 k8s java 客户端)是:

<dependency>
     <groupId>io.kubernetes</groupId>
     <artifactId>client-java-api</artifactId>
     <version>14.0.1</version>
</dependency>

所提供的 pom 中的其余依赖项也应该以类似的方式修复。