Maven ищет артефакт в неправильном хранилище - PullRequest
1 голос
/ 04 февраля 2020

Я получаю эту ошибку (совершенно откровенно) из-за того, что пытаюсь построить мой Java проект (плагин Minecraft).

Я пытался найти похожие ошибки, большинство из которых я мог найти, связанные с зеркала (что-то, что я не использую (я думаю)), у других действительно не было решения / четкого ответа.

Ошибка, которую я получаю:

[ERROR] Failed to execute goal on project HeroicScoreboard: Could not resolve dependencies for project com.dbsoftwares.spigot:HeroicScoreboard:jar:1.0.0-SNAPSHOT: Could not find artifact com.comphenix.protocol:ProtocolLib:jar:4.5.1-20200112.025312-289 in aikar (https://repo.aikar.co/content/groups/aikar/) -> [Help 1]

Image of full error

Я получаю эту ошибку как локально, так и на GitHub ( вы можете найти сборку здесь )

Это файл POM, который я в данный момент используя (, вы также можете найти его на github ):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>com.dbsoftwares.spigot</groupId>
    <artifactId>HeroicScoreboard</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>centrixpvp</id>
            <url>http://nexus.diviwork.nl/repository/centrix-releases/</url>
        </repository>
        <repository>
            <id>dbsoftwares</id>
            <url>http://nexus.diviwork.nl/repository/dbsoftwares/</url>
        </repository>
        <repository>
            <id>dmulloy2-repo</id>
            <url>https://repo.dmulloy2.net/nexus/repository/public/</url>
        </repository>
        <repository>
            <id>aikar</id>
            <url>https://repo.aikar.co/content/groups/aikar/</url>
        </repository>
        <repository>
            <id>mvdw-software</id>
            <url>http://repo.mvdw-software.be/content/groups/public/</url>
        </repository>
        <repository>
            <id>placeholderapi</id>
            <url>http://repo.extendedclip.com/content/repositories/placeholderapi/</url>
        </repository>
        <repository>
            <id>viaversion</id>
            <url>https://repo.viaversion.com/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.spigotmc</groupId>
            <artifactId>spigot</artifactId>
            <version>1.15.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.dbsoftwares.centrixcore</groupId>
            <artifactId>spigot</artifactId>
            <version>2.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.dbsoftwares.configuration</groupId>
            <artifactId>ConfigurationAPI</artifactId>
            <version>1.3.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>co.aikar</groupId>
            <artifactId>acf-paper</artifactId>
            <version>0.5.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.comphenix.protocol</groupId>
            <artifactId>ProtocolLib</artifactId>
            <version>4.5.1-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>be.maximvdw</groupId>
            <artifactId>MVdWPlaceholderAPI</artifactId>
            <version>3.0.2-SNAPSHOT</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.spigotmc</groupId>
                    <artifactId>spigot</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>me.clip</groupId>
            <artifactId>placeholderapi</artifactId>
            <version>2.9.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.12.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>us.myles</groupId>
            <artifactId>viaversion</artifactId>
            <version>2.2.3</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <finalName>HeroicScoreboard v${project.version}</finalName>

        <plugins>
            <plugin>
                <version>3.8.1</version>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                    <compilerArgs>
                        <arg>-parameters</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.1</version>
                <configuration>
                    <dependencyReducedPomLocation>
                        ${project.build.directory}/dependency-reduced-pom.xml
                    </dependencyReducedPomLocation>
                    <relocations>
                        <relocation>
                            <pattern>co.aikar.commands</pattern>
                            <shadedPattern>com.dbsoftwares.spigot.acf</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>com.dbsoftwares.configuration</pattern>
                            <shadedPattern>com.dbsoftwares.spigot.scoreboard.configuration</shadedPattern>
                        </relocation>
                        <relocation>
                            <pattern>org.jsoup</pattern>
                            <shadedPattern>com.dbsoftwares.spigot.scoreboard.jsoup</shadedPattern>
                        </relocation>
                    </relocations>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>

Таким образом, он в основном ищет артефакт 'ProtocolLib' в этом хранилище:

        <repository>
            <id>aikar</id>
            <url>https://repo.aikar.co/content/groups/aikar/</url>
        </repository>

вместо вот этот (где он находится):

        <repository>
            <id>dmulloy2-repo</id>
            <url>https://repo.dmulloy2.net/nexus/repository/public/</url>
        </repository>

Редактировать # 1: я забыл упомянуть, что да, я пытался запустить его с опцией -U локально, но, похоже, он не работал.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Реальная причина сбоя этой сборки, по-видимому, заключается в том, что хранилище

https://repo.aikar.co/content/groups/aikar/

повреждено. Если вы посмотрите на

https://repo.aikar.co/nexus/content/groups/aikar/com/comphenix/protocol/ProtocolLib/4.5.1-SNAPSHOT/

, вы увидите maven-metadata.xml. Поэтому Maven смотрит на этот файл и видит, что в хранилище содержится искомый SNAPSHOT, а именно

<dependency>
    <groupId>com.comphenix.protocol</groupId>
    <artifactId>ProtocolLib</artifactId>
    <version>4.5.1-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

К сожалению, этот файл xml хочет разрешить -SNAPSHOT до версии 4.5.1-20200112.025312-289. Эта версия не существует в каталоге, поэтому Maven не может ничего разрешить.

В качестве быстрого исправления измените порядок двух соответствующих репозиториев в обратном порядке.

0 голосов
/ 04 февраля 2020

Введение

Где я работаю, у нас есть связь. Иногда случается, что люди удаляют библиотеки из своих зависимостей или когда зеркало отключается и перестает работать должным образом.

Снимки не являются релизами

Где я работаю, снимки снимков очищаются / удаляется довольно часто . Это означает, что указанный снимок c, к которому вы пытаетесь получить доступ, был очищен или удален системой или кем-либо еще. Если вы можете, вам нужно спросить вашу команду, есть ли копия указанного проекта c.

Затем вам нужно либо выполнить локальную сборку и установить, используя: mvn clean install ИЛИ вы можете выполнить повторное развертывание обратно в Nexus, используя: mvn clean deploy

Дополнительная информация

Если вы получаете ту же ошибку для зависимости релиза ...

1) Я обычно пытаюсь включить или отключить некоторые из репозиториев и попробовать перестроить заново. Посмотрите на ваши настройки maven. xml файл конфигурации.

2) Go самим репозиториям и убедитесь, что ваша зависимость действительно существует. Бывает, что иногда его удаляют. Выполните поиск в вашей связке или артефакте, чтобы узнать, доступна ли указанная зависимость c в другом хранилище. Затем добавьте этот репозиторий в вашу конфигурацию.

3) если 1 и 2 не пройдены, это означает, что указанная c зависимость недоступна в вашей корпоративной связке или артефакте. В этом случае вам нужно либо найти его онлайн из надежного источника и вручную установить его в свой репозиторий maven.

Другой вариант - добавить внешний доверенный репозиторий в вашу конфигурацию. Однако будьте очень осторожны с этим, потому что вы можете нарушать политику компании и / или подвергать себя угрозе безопасности, если добавляете неизвестное хранилище.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...