Wewnętrzne repozytorium Mavena, czy to naprawdę takie trudne?

Mam kilka projektów, które używają Mavena i chciałbym uruchomić wewnętrzne repozytorium w mojej sieci roboczej. Mam kilka bibliotek, które pochodzą od stron trzecich i nie mogą być wypuszczone na wolność, a także kilka własnych bibliotek, które muszą być dostępne w sieci (w tym na naszym serwerze CI TeamCity), ale nie mogą być wdrożone poza siecią. Po odrobinie badań znalazłem trzy główne zalecenia dotyczące tego, jak to osiągnąć: Archiva, Artifactory i Nexus. I wypróbowałem każdy z nich i nie udało mi się osiągnąć pomyślnego zbudowania żadnego z moich projektów przy użyciu wewnętrznych repozytoriów utworzonych przez którykolwiek z nich.

To prowadzi mnie do przekonania, że czegoś nie rozumiem lub robię coś źle. Czy ktoś zna tutorial, który przeprowadzi mnie przez konfigurację i wewnętrzne repozytorium Maven i zintegruje je z moim projektem?

Author: Dror Bereznitsky, 2013-04-11

3 answers

Proponuję skorzystać z Nexus evaluation guide (najnowsza dostępna wersja to 2.13 Teraz), który pochodzi z Nexus Pro Installer, ale działa również z Nexus Open Source dla prostych przypadków użycia proxy i wdrażania komponentów.

Przykłady są również dostępne na github i obejmują konfiguracje dla Maven,Ant / Ivy i Gradle. Po zapoznaniu się z przykładami i przeczytaniu przewodnika będziesz mógł skonfigurować swoje projekty w tak samo łatwo.

I oczywiście w razie jakichkolwiek problemów zawsze możesz poprosić na liście mailingowej lub porozmawiać z programistami na hipchat

 4
Author: Manfred Moser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-17 04:13:49

Pracowałem tylko z Nexusem, ale okazało się, że jest bardzo łatwy w instalacji:

  1. idź do http://www.sonatype.org/nexus/go aby pobrać wersję OSS
  2. Get The' WAR ' distribution
  3. Zainstaluj servlet w mojej instalacji Tomcat, za pomocą Menedżera aplikacji WWW
W tym momencie, mogę odwiedzić http://myserver:8080/nexus, aby zobaczyć wszystko działa.

Dla powierzchownej konfiguracji dodaję domyślne hasło do mojego settings.xml:

    <servers>
            <server>
                    <id>my-snapshots</id>
                    <username>admin</username>
                    <password>admin123</password>
            </server>
            <server>
                    <id>my-releases</id>
                    <username>admin</username>
                    <password>admin123</password>
            </server>
    </servers>

I w moim POM plik:

    <distributionManagement>
            <snapshotRepository>
                    <id>my-snapshots</id>
                    <name>My internal repository</name>
                    <url>http://myserver:8080/nexus/content/repositories/snapshots</url>
            </snapshotRepository>
            <repository>
                    <id>my-releases</id>
                    <name>My internal repository</name>
                    <url>http://myserver:8080/nexus/content/repositories/releases</url>
            </repository>
    </distributionManagement>

Aby wyjść poza to, krzywa uczenia się znacznie wzrosła, ale uważam, że książki online Sonatype są całkiem dobre. Zarządzanie repozytorium za pomocą Nexus pozwala zrozumieć, co można zrobić z serwerem repozytorium. Jedyną rzeczą, którą uznałem za trudną, jest to, że niektóre informacje dotyczą tylko ich komercyjnego oprogramowania i nie pracują zbyt ciężko, aby reklamować różnicę.

 13
Author: Nathaniel Waisbrot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-11 18:40:32

[1]}Menedżery repozytoriów, takie jak Archiva i Nexus, to coś więcej niż tylko wewnętrzne repozytorium. Służą one jako proxy, które uniemożliwiają dotarcie do centralnego lub innego zewnętrznego repozytorium Maven.

Tylko dla wewnętrznego repozytorium wszystko, czego potrzebujesz, to lokalizacja dostępna przez sieć lub HTTP, która ma strukturę repozytorium Maven. Następnie odnosisz się do niego jako do innego repozytorium w swoim pliku ustawień .

<repository>
  <id>my-internal-repo</id>
  <url>http://myrepo.mycompany.com/</url>
</repository>

Zobacz więcej w dokumentacji Mavena na http://maven.apache.org/guides/introduction/introduction-to-repositories.html .

 7
Author: Sri Sankaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-11 19:40:15