#maven #nexus
#maven #nexus
Вопрос:
Я новичок в Nexus и пытаюсь запустить проект Maven на моем единственном сервере Nexus. При запуске проекта (пример Spring Roo, который, как известно, собран и запущен должным образом) загружены все, кроме двух milestone jar. Мой ответ (возможно, не самый лучший) заключался в том, чтобы найти и загрузить jar напрямую (с помощью POM) на мой сервер Nexus (размещенное репозиторий), который я затем разместил в общедоступной группе.
При повторном запуске проекта mvn (с использованием пакета mvn tomcat: run), кажется, что 2 файла загружаются (см. Вывод консоли ниже) с сервера, но проект mvn по-прежнему не найден. Почему проект, по-видимому, вызывает их, но не использует их? Спасибо.
Вот вывод консоли, показывающий, что загрузка происходит, но не используется проектом, и мой settings.xml (речь идет о jar-файлах aspectjrt-1.6.11.M1 и aspectjweaver-1.6.11.M1):
Last login: Mon Nov 14 06:03:25 on console
Macintosh-2:~ wlaprise$ cd coursemanager/
Macintosh-2:coursemanager wlaprise$ mvn package tomcat:run
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Course Manager Chapter 4 0.1.0.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjrt/1.6.11.M1/aspectjrt-1.6.11.M1.pom
Downloaded: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjrt/1.6.11.M1/aspectjrt-1.6.11.M1.pom (909 B at 0.5 KB/sec)
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjweaver/1.6.11.M1/aspectjweaver-1.6.11.M1.pom
Downloaded: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjweaver/1.6.11.M1/aspectjweaver-1.6.11.M1.pom (912 B at 1.0 KB/sec)
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/springframework/roo/org.springframework.roo.annotations/1.2.0.BUILD-SNAPSHOT/maven-metadata.xml
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/springframework/roo/org.springframework.roo.osgi.bundle/1.2.0.BUILD-SNAPSHOT/maven-metadata.xml
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/springframework/roo/org.springframework.roo.root/1.2.0.BUILD-SNAPSHOT/maven-metadata.xml
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjrt/1.6.11.M1/aspectjrt-1.6.11.M1.jar
Downloading: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjweaver/1.6.11.M1/aspectjweaver-1.6.11.M1.jar
Downloaded: http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public/org/aspectj/aspectjrt/1.6.11.M1/aspectjrt-1.6.11.M1.jar (1640 KB at 689.5 KB/sec)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.607s
[INFO] Finished at: Mon Nov 14 06:17:42 CST 2011
[INFO] Final Memory: 5M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project course-manager-chapter-04: Could not resolve dependencies for project org.rooinaction.coursemanager:course-manager-chapter-04:war:0.1.0.BUILD-SNAPSHOT: Could not find artifact org.aspectj:aspectjweaver:jar:1.6.11.M1 in nexus (http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public) -> [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
Macintosh-2:coursemanager wlaprise$
settings.xml —
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://www.c3works.com:8081/nexus-webapp-1.9.1.1/content/repositories/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
<pluginGroups>
<pluginGroup>com.sonatype.maven.plugins</pluginGroup>
<pluginGroup>org.sonatype.plugins</pluginGroup>
</pluginGroups>
</settings>
Ответ №1:
Прежде всего URL http://central все в порядке. Это фиктивный заполнитель, который никогда не используется, потому что у вас определено зеркало.
Однако зеркальный URL, который вы используете, скорее всего, неправильный. Обычно репозитории в Nexus размещаются или проксируются, а затем объединяются в общедоступную «группу».
URL-адрес по умолчанию для общедоступной группы является http://localhost:8081/nexus/content/groups/public с заменой localhost на ваш сервер и пропущенным портом, если вы проксируете через apache или работаете на порту 80.
В любом случае .. главное, чтобы URL был / content /GROUPS / public .. ваш URL, скорее всего, неверен. Для тестирования просто попробуйте URL из зеркала в браузере.
И, конечно, в него должны быть добавлены все репозитории, которые вы хотите получить в общедоступной группе.
Комментарии:
1. Спасибо, Манфред. Это возвращает меня в нужное русло.
2. если это так, вы должны принять мой ответ, и вам также следует ознакомиться с бесплатной книгой Nexus для получения более подробной информации..
Ответ №2:
Поскольку вы работаете на своем собственном сервере Nexus, jar недоступен в настроенных вами репозиториях. Вы должны добавить веху Spring Source, релизы и репозиторий моментальных снимков в общедоступную группу.
В OSS есть экземпляр репозитория исходных текстов Spring, и у них есть единый групповой URL, который содержит вехи, выпуски и моментальные снимки. Ссылка https://oss.sonatype.org/content/groups/springsource-all /
Для этого вам следует добавить прокси-репозиторий, который указывает на https://oss.sonatype.org/content/groups/springsource-all / и установите для политики репозитория значение Snapshot.
Затем добавьте новый репозиторий в общедоступную группу. Наконец, перестройте индекс, и Maven теперь сможет найти файл.
Кроме того, ниже приведены несколько полезных ссылок для настройки Spring с Nexus. http://www.sonatype.com/people/2009/12/spring-maven-nexus-best-practices / http://blog.springsource.com/2009/12/02/obtaining-spring-3-artifacts-with-maven/