Я борюсь с этим и до сих пор не могу найти приемлемого решения.
Дело в том, что я использую javax.persistence и eclipselink jar, которые я сказал maven скачать из этого репозитория "
http://mirror.cs.rit.edu/mirrors/eclipse/rt/eclipselink/maven.repo
"(который я назвал" репо затмения "), потому что этих jar-файлов не было в центральном репозитории maven. Итак, maven загружает jar-файлы, устанавливает их в локальный репозиторий, и все работает нормально.
Затем я изменил версию junit с 3.8.x на 4.8.x для запуска некоторых тестов, и вот тут начинается самое интересное; когда я изменил версию junit на 4.8.x, тогда maven пошел скачивать ее из удаленного репозитория, НО он всегда пытается загрузить новую версию junit из eclipse repo , и банка джунит находится в центральном хранилище maven!
После этого я удалил репозиторий eclipse из проекта pom.xml, и maven приступил к поиску и загрузке новой версии junit, И ТАКЖЕ снова пытается загрузить ¡! jar eclipse (javax.persistence и eclipselink), но теперь из центрального репозитория maven, который выдает красивую ошибку, потому что этих файлов нет. Теперь мои вопросы:
1.- почему maven пытается снова загрузить файлы eclipselink, если они находятся в моем локальном репозитории (я уверен в этом) ?. Ммммм, еще лучше, когда я снова записываю eclipse repo в проекте pom.xml, тогда maven перестает пытаться загрузить файлы eclipselink. Похоже, что файлы jar eclipselink связаны с удаленным репозиторием, из которого они были загружены, и когда я удаляю repl eclipse , тогда maven чувствует что-то вроде: эй! эти файлы eclipselink не были загружены из центрального хранилища maven, и я не вижу хранилище, из которого они были загружены, давайте загрузим их снова - это так забавно, загрузить какое-то дерьмо, которое у меня уже есть !!!! - WTF это !!!
2.- почему maven не выполняет поиск в доступных удаленных репозиториях ?, если артефакт отсутствует в одном репозитории, он, вероятно, может быть в следующем.
3.- где написано центральное репозиторий maven, какой файл ?, его нет в файле settings.xml, он спрятан где-то еще. Я пытаюсь добавить больше удаленных репозиториев в maven, но не могу найти, где находится центральный репозиторий maven. Я использую Maven 3.
Кстати, я знаю, что могу установить джунит банку вручную, но это не главное. Maven должен искать в доступных репозиториях необходимые артефакты, а также использовать артефакты, уже установленные в вашем локальном репо.
Если кто-то может помочь мне с этим, я буду очень признателен. Заранее спасибо.
По запросу:
<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>tutorial</groupId>
<artifactId>chapter02</artifactId>
<version>1.0-SNAPSHOT</version>
<name>chapter02</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.4.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.4.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<inherited>true</inherited>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>EclipseLink Repo</id>
<url>http://mirror.cs.rit.edu/mirrors/eclipse/rt/eclipselink/maven.repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
Как вы можете видеть, существует репо затмения , если я удаляю это репо затмения из pom.xml, тогда maven начинает загружать файлы eclipselink, которые уже установлены в локальный репозиторий.
Что касается /.m2/settings.xml, у меня нет такого файла, единственный файл settings.xml, который я нашел, находится в $ M2_HOME / conf / settings.xml, и, поверьте мне, нет никаких следов центрального репозитория maven ни какой-либо другой репозиторий. Смотри сам:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
</mirrors>
<profiles>
</profiles>
</settings>
Есть какие-нибудь проблемы?