Предполагается, что это рабочий проект моего друга. Он продемонстрировал проект прямо передо мной, а затем я скопировал проект, импортировал его как существующий проект maven (я использую m2eclipse
плагин).
И тогда возникает эта ошибка. Эта ошибка может воспроизводиться каждый раз, когда я пытаюсь что-то построить с помощью maven.
Выполнение mvn dependency: tree, dependency: list или обычного пакета сборки приведет к той же ошибке.
Ошибка при запуске сборки пакета из eclipse:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Jackpot Portal Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet:jar:2.5.0 is missing, no dependency information available
[WARNING] The POM for javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0 is missing, no dependency information available
[WARNING] The POM for javax.transaction:com.springsource.javax.transaction:jar:1.1.0 is missing, no dependency information available
[WARNING] The POM for org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.963s
[INFO] Finished at: Tue Jan 11 01:55:41 WIT 2011
[INFO] Final Memory: 2M/56M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jackpot: Could not resolve dependencies
for project com.jeteo:jackpot:war:1.0-SNAPSHOT: The following artifacts could
not be resolved: javax.servlet:com.springsource.javax.servlet:jar:2.5.0,
javax.servlet:com.springsource.javax.servlet.jsp.jstl:jar:1.2.0,
javax.transaction:com.springsource.javax.transaction:jar:1.1.0,
org.slf4j:com.springsource.slf4j.log4j:jar:1.5.6: Failure to find
javax.servlet:com.springsource.javax.servlet:jar:2.5.0 in
http://repository.springsource.com/maven/bundles/release was cached in the
local repository, resolution will not be reattempted until the update
interval of com.springsource.repository.bundles.release has elapsed or
updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
А вот содержание 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jeteo</groupId>
<artifactId>jackpot</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Jackpot Portal Webapp</name>
<url>http://www.jeteo.com</url>
<properties>
<java-version>1.6</java-version>
<org.springframework-version>3.0.3.RELEASE</org.springframework-version>
<org.hibernate-version>3.6.0.Final</org.hibernate-version>
<org.aspectj-version>1.6.9</org.aspectj-version>
<org.slf4j-version>1.5.10</org.slf4j-version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sf.jt400</groupId>
<artifactId>jt400</artifactId>
<version>6.6</version>
<scope>compile</scope>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${org.hibernate-version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${org.hibernate-version}</version>
<scope>compile</scope>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>com.springsource.javax.servlet</artifactId>
<version>2.5.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>com.springsource.javax.servlet.jsp.jstl</artifactId>
<version>1.2.0</version>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>com.springsource.javax.persistence</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
-->
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>com.springsource.javax.transaction</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>com.springsource.slf4j.log4j</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.11</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
</dependencies>
<repositories>
<!-- Spring releases -->
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>Spring Maven Repository Repository</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
<!-- For hibernate 3.6 support -->
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
<build>
<finalName>jackpot</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<url>http://localhost:8080/manager</url>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Я попытался загрузить новейшую версию maven и включил ее в eclipse helios, но проблема все та же. Такое же сообщение об ошибке возникает, даже когда я запускаю его в командной строке оболочки (вне eclipse).
Чего мне не хватает?
Ответы:
Похоже, вам не хватает некоторых репозиториев Maven. Спросите своего друга
.m2/settings.xml
, и вы, вероятно, захотите обновить POM, чтобы включить туда репозитории.--edit: после быстрого поиска в Google попробуйте добавить это в свой POM:
источник
.m2/settings.xml
может указывать списки репозиториев помимо стандартных по адресуrepo.maven.apache.org
. В этом случае JAR-файлы поступают из репозитория SpringSource, а не в Maven Central. Я предполагал, что у друга репозитории SpringSource перечислены в локальном списке.m2/settings.xml
, что не вызывает ошибок поиска, потому что артефакты будут найдены в альтернативных репозиториях maven. Вместо этого JAR-файлы были кэшированы, и поиск вообще не производился.Maven хранит ваши файлы в кеше, и не пытайтесь их загрузить повторно. Вы просто можете вручную «помочь» ему, удалив каталог .m2, и тогда наш друг скачает все через старые зависимости.
источник
В качестве альтернативного источника той же проблемы в этом ответе в качестве потенциальной причины этой проблемы упоминается использование Maven 3 по сравнению с Maven 2. Насколько я могу судить, это связано с изменениями в разрешении локального репозитория, которое было изменено в Maven 3. Поместите это здесь на тот случай, если кто-то еще погуглиет и найдет этот ответ (как это сделал я).
источник
Для
artifactId
всех зависимостей, которые не удалось загрузить, неверны - по какой-то причине они имеют префиксcom.springsource
. Проблема с вырезанием / вставкой?Вы можете попробовать заменить их следующим образом.
Вы также можете добавить центральный репозиторий maven для этих артефактов, если они недоступны в указанных репозиториях.
источник
Загрузите банку вручную, а затем выполните команду из папки, в которой сохранена банка:
jar file
,jar_file_name
,group_id
,artifact_id
Иversion_no
доступны из репозиториев Maven страницы.источник
У меня была аналогичная проблема, и я исправил ее, добавив следующие репозитории в свой pom.xml:
источник
Решил мою проблему. Поскольку репозитории были кэшированы, мне нужно было заставить его получить последнюю версию.
источник
У меня есть аналогичное сообщение, и моя проблема заключалась в некоторых настройках прокси в моем файле settings.xml. Я отключил их, и все работает нормально.
источник
Такого рода проблемы вызваны двумя причинами:
Если можно загрузить большинство зависимостей, то наиболее вероятной ошибкой может быть причина 1. Напротив, если у большинства зависимостей есть проблемы, вам следует взглянуть на settings.xml .
Что ж, я весь день пытался решить свою проблему, и, наконец, у меня все получилось. Моя проблема возникает в settings.xml, а не из-за потери или неправильного написания settings.xml , а из-за потери activeProfiles .
источник
У меня была эта проблема. В моем случае это было вызвано тем, что IntelliJ Idea возился с некоторыми файлами pom.xml (что, похоже, нравится делать!). Я просто вернулся к исходной копии, и все снова заработало!
источник
У меня тоже была эта проблема, оказалось, что это из-за того, что NetBeans что-то добавлял в мой файл pom.xml. Дважды проверьте, ничего не было добавлено с момента предыдущих успешных развертываний.
источник
В моем проекте EAR было 2 модуля * .ear и * .war, и я получил эту ошибку зависимости от
*.war
проекта при попыткеmvn eclipse:eclipse
. Решил это, исправив проблему с кодировкой utf-8 в*.war
проекте.mvn
-X
или-e
варианты здесь не помогли.источник
Оказывается, это произошло из-за брандмауэра на моем компьютере. Отключение сработало для меня.
источник
Столкнулись с такой проблемой. Основная причина - папка .m2. Вы должны убедиться, что все, к чему вы пытаетесь получить доступ, присутствует в вашей папке .m2 (это ваше локальное репо). Если материал есть, то все в порядке. Обычно это находится внутри папки пользователей в вашей системе (будь то Mac / Linux или даже Windows).
источник