Артефакт загружен, но не используется с моего единственного сервера Nexus

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