maven не может разрешить зависимости от Google Firebase - PullRequest
0 голосов
/ 26 сентября 2019

Я запускаю mvn clean install на моем образе док-станции gitlab ci / cd и выдает следующую ошибку ниже.

[ОШИБКА] Не удалось выполнить цель проекта bootstrap.service: не удалось разрешить зависимостидля проекта com.sheeft: bootstrap.service: jar: 0.0.1-SNAPSHOT: не удалось собрать зависимости на com.google.firebase: firebase-admin: jar: 6.10.0 -> com.google.cloud:google-cloud-firestore: jar: 1.9.0 -> com.google.cloud:google-cloud-core-grpc:jar:1.79.0 -> io.grpc: grpc-netty-shaded: jar: 1.21.0 -> io.grpc: grpc-core: jar: [1.21.0]: для io.grpc нет версий: grpc-core: jar: [1.21.0] в указанном диапазоне -> [Помощь 1]

Поэтому я попробовал следующее в моем pom

<?xml version="1.0" encoding="UTF-8"?>
<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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.sheeft</groupId>
    <artifactId>bootstrap.service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Sheeft Bootstrap Service</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-core</artifactId>
                <version>1.23.0</version>
            </dependency>
            <dependency>
                <groupId>io.grpc</groupId>
                <artifactId>grpc-api</artifactId>
                <version>[1.23.0]</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.vaadin.external.google</groupId>
                    <artifactId>android-json</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 2fa -->
        <dependency>
            <groupId>org.jboss.aerogear</groupId>
            <artifactId>aerogear-otp-java</artifactId>
            <version>1.0.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.inlaks</groupId>
            <artifactId>inlaks-util-lib</artifactId>
            <version>1.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.derby/derby -->
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160212</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.firebase</groupId>
            <artifactId>firebase-admin</artifactId>
            <version>6.10.0</version>
            <exclusions>
                <exclusion>
                    <groupId>io.grpc</groupId>
                    <artifactId>grpc-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.grpc</groupId>
                    <artifactId>grpc-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.grpc</groupId>
                    <artifactId>grpc-netty-shaded</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-core</artifactId>
            <version>1.23.0</version>
            <exclusions>
                <exclusion>
                    <groupId>io.grpc</groupId>
                    <artifactId>grpc-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty-shaded</artifactId>
            <version>1.23.0</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-api</artifactId>
            <version>[1.23.0]</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

, поэтому ошибка теперь немного другая, но это странно

[ОШИБКА] Не удалось выполнить цель в проекте bootstrap.service: Не удалось разрешить зависимости для проекта com.sheeft: bootstrap.service: jar: 0.0.1-SNAPSHOT: Не удалось собрать зависимости в io.grpc: grpc-core: jar: 1.23.0 -> io.grpc: grpc-api: jar: [1.23.0]: нет доступных версий для io.grpc: grpc-api: jar: [1.23.0] в указанном диапазоне -> [Помощь 1]

что странноошибка, описанная выше, заключается в том, что она фактически загрузила зависимость, как показано ниже

Загрузка из центра: https://repo.maven.apache.org/maven2/io/grpc/grpc-api/1.23.0/grpc-api-1.23.0.pom Загрузка из центра: https://repo.maven.apache.org/maven2/io/grpc/grpc-api/1.23.0/grpc-api-1.23.0.pom (0 B при 0 B /s)

1 Ответ

0 голосов
/ 27 сентября 2019

Вы явно ссылаетесь на grpc-api versio 1.21.1, в котором перед переходной зависимой загрузкой используется grpc-core 1.23 с соответствующей версией.Почему вы хотите, чтобы они разные?Если вы хотите сохранить их в таком виде, вы должны исключить grpc-api из grpc-core.

Но более простой способ справиться с этим - сохранить одну версию для api и core.

Синтаксис диапазона Maven:https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html

Для модуля Core это только строгая совместимость версий, определяемая как:

<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-api</artifactId>
<version>[1.23.0]</version>
<scope>compile</scope>
</dependency>
...