Сборка с использованием JIB дает несколько допустимых основных классов, даже если mainClass определен
При сборке моего сервисного проекта с помощью команды jib mvn clean compile jib: build выдает следующую ошибку:
Не удалось выполнить цель com.google.cloud.tools:jib-maven-plugin:1.0.2:build (build-image-and-tag-image) в проекте my-service: найдено несколько допустимых основных классов: com.myservice.MyServiceApplication, io.swagger.Swagger2SpringBoot, возможно, вам следует добавить
mainClass
Конфигурация для jib-maven-plugin -> [Помощь 1]
Однако я установил основные классы для весенней загрузки
<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.myservice.MyServiceApplication.
Примечание: mvn clean install отлично работает, и у меня нет проблем с его использованием отдельного приложения для весенней загрузки.
1 ответ
Основной класс должен быть установлен в определении
Это будет выглядеть так, чтобы решить проблему:
<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>