当前位置: 首页 > 知识库问答 >
问题:

使用JIB give的构建找到了多个有效的主类,即使主类是define

夏侯宏旷
2023-03-14

当使用jib命令mvn干净编译jib: build构建我的服务项目时,它会给出以下错误:

无法执行目标com.google.cloud.tools:jib-maven-plugin:1.0.2:在项目my-service上构建(build-image-and-tag-image):找到多个有效的主类:com.myservice.MyServiceApplication,io.swagger.Swagger2SpringBoot,也许您应该将main Class配置添加到jib-maven-plugin-

但是,我已经为Spring-boot设置了主要类

    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <mainClass>com.myservice.MyServiceApplication</mainClass>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>repackage</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

它仍然不起作用。

我试图将其添加到jib配置中:

        <plugins>
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <configuration>
                    <container>
                        <mainClass>com.myservice.MyServiceApplication</mainClass>
                    </container>
                </configuration>                        
                <executions>
                    <execution>
                        <id>build-image-and-tag-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>dockerBuild</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

它仍然不起作用。强制jib忽略其他类并使用com的任何其他方法。我的服务。取而代之的是MyServiceApplication。

注意:mvn clean install工作正常,我使用它时没有问题,它有一个独立的spring boot应用程序。

共有1个答案

都博裕
2023-03-14

主类需要设置在

解决问题的方法如下:

    <build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.myservice.MyServiceApplication</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <configuration>
                <container>
                    <mainClass>com.myservice.MyServiceApplication</mainClass>
                    <ports>
                        <port>8080</port>
                    </ports>
                    <environment>
                        <application.title>${project.name}</application.title>
                        <application.version>${project.version}</application.version>
                    </environment>
                    <jvmFlags>
                        <jvmFlag>-javaagent:/usr/local/newrelic/newrelic.jar</jvmFlag>
                    </jvmFlags>
                </container>
            </configuration>
        </plugin>
        .... (more plugin)
    </plugins>
</build>
 类似资料:
  • > 我的剧本如下 在上面的sourceSets方法中,我尝试从2文件夹加载源代码,但没有成功 提前谢谢。。!!如何使用gradle实现。

  • 我正在尝试使用Ant将eclipse项目构建为.jar。 我的目录结构是: / 下面是我的build.xml: 该事物正确构建,并生成一个JAR。但是,当我使用:java-jar dynamdns.jar运行jar时 我收到错误:错误:找不到或加载主类DynamDns.Connector 有人有什么想法吗?

  • 我试图建立在Jenkins的基础上。我有例外。 C:\Users\anuj.jenkins\plugins\maven-plugin\WEB-INF\lib\maven32-agent-1.12-alpha-1.jar;D:\unicmoer\software\apache-maven-3.2.3\boot\plexus-classworlds-2.5.1.jar;D:\unicmoer\soft

  • 我有一个多模块maven项目,我对javaFx有问题(我使用了zenJava插件)。 当我想要构建jar时,我有一个错误:无法执行目标com。zenjava:javafx maven插件:8.8.3:在项目XXXX上构建jar(默认cli):目标com的参数“mainClass”。zenjava:javafx maven插件:8.8.3:build jar缺失或无效 但是,我在父pom中定义了ma

  • 问题内容: 我想用主方法创建一个简单的Java类,但是在编译代码时,出现以下错误消息: 错误:在类error.TestErrors中找不到主方法,请将主方法定义为:public static void main(String [] args) 这是源代码: 为什么我看到此错误,如您所见,我已经声明了main方法! 问题答案: 正如我在评论中所说,您似乎已经在自己的类中声明了一个类。为了证明这一点,

  • 所以,我最近创建了我的第一个插件,叫做BetterTeaming。该插件正在使用插口api。插件发布后,一段时间后,有人建议我使用Maven从编译的jar中删除插口api依赖项。这应该缩小文件大小。然而,我对Maven了解不多。我成功地设置了它,并将文件复制到Maven文件夹(包括层次结构截图),但每次我在本地服务器Minecraft上加载插件时,它都会向我抛出ClassNotFoundExcep