Сборка с использованием JIB дает несколько допустимых основных классов, даже если mainClass определен - PullRequest
0 голосов
/ 24 апреля 2019

При сборке моего сервисного проекта с помощью команды 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 Ответ

0 голосов
/ 24 апреля 2019

Основной класс должен быть установлен в определении в файла pom.xml.

Это будет выглядеть так, чтобы решить проблему:

    <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>
...