Ошибка в Maven при загрузке зависимостей - PullRequest
2 голосов
/ 31 января 2011

Мой project1 и project2 работали нормально с сборками maven.Недавно я обновил maven2 до maven3 с помощью этого учебника (я проверял его на maven2, но он тоже не работал).Все работало и работает нормально для project2, у которого есть частное (самостоятельно размещенное) хранилище Nexus.

Но теперь я получаю сообщение об ошибке при загрузке зависимостей для моего проекта1 (с использованием общедоступного репозитория maven).* Мой pom.xml:

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

    <groupId>com.dds.server.DDSStartup</groupId>
    <artifactId>storage</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>storage</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>r07</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>com.sleepycat</groupId>
            <artifactId>je</artifactId>
            <version>3.3.75</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>jgroups</groupId>
            <artifactId>jgroups-all</artifactId>
            <version>2.4.1</version>
        </dependency>
    </dependencies>


    <repositories>
        <repository>
            <id>oracleReleases</id>
            <name>Oracle Released Java Packages</name>
            <url>http://download.oracle.com/maven</url>
            <layout>default</layout>
        </repository>
    </repositories>
</project>

Где я иду не так, это ошибка, которую я получаю, когда делаю: mvn clean package

[ERROR] Failed to execute goal on project storage: Could not resolve dependencies for project com.dds.server.DDSStartup:DynamicDistributedStorage:jar:1.0-SNAPSHOT: Failed to collect dependencies for [junit:junit:jar:3.8.1 (test), com.google.guava:guava:jar:r07 (compile), log4j:log4j:jar:1.2.16 (compile), com.sleepycat:je:jar:3.3.75 (compile), com.google.protobuf:protobuf-java:jar:2.3.0 (compile), jgroups:jgroups-all:jar:2.4.1 (compile)]: Failed to read artifact descriptor for log4j:log4j:jar:1.2.6: Could not transfer artifact log4j:log4j:pom:1.2.6 from/to oracleReleases (http://download.oracle.com/maven): /Users/username/.m2/repository/log4j/log4j/1.2.6/log4j-1.2.6.pom.ahc65d8d087349b4a46 (No such file or directory) -> [Help 1]

ОБНОВЛЕНИЕ:

Я удалил все (рабочее пространство), снова импортировал проект, и он работал как чудо.Ничто не может победить это решение!;)

Ответы [ 4 ]

5 голосов
/ 31 января 2011

Это также не должно работать с maven2.

Из сообщения об ошибке похоже, что maven пытается загрузить зависимости из репозитория, указанного в вашем pom - oracleReleases (http://download.oracle.com/maven), а не из публичного репозитория maven. Похоже, это недопустимый репозиторий URL.

Возможно, вам следует попробовать удалить раздел и повторить попытку.

1 голос
/ 01 декабря 2013

Версии зависимостей выводились как свойства.Например:

<properties>
    [...]
    <hibernate-core.version>4.1.3.Final</hibernate-core.version>
    [...]
</properties>

И:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>${hibernate-core.version}</version>
</dependency>

Я закрыл проект, изменил объявление версии, чтобы оно было явным, так как

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.1.3.Final</version>
</dependency>

это сработало!

1 голос
/ 03 января 2012

Это покрыто другим вопросом о стеке , который сводится к репозиторию Oracle, не допускающему списки каталогов.

0 голосов
/ 31 января 2011

URL в orcacleReleases кажется неправильным, он указывает на 404, может быть, оракул переместил его?

...