Zgodnie z zaleceniami w a previous SO-Answer używam obrazu VmWare z secureci jako wstępnie skonfigurowanej infrastruktury programistycznej zawierającej maven, nexus, hudson, svn.Jak wdrożyć na nexusie (hostowane przez secureci)?
Teraz chcę skonfigurować program maven na moim komputerze z systemem Windows XP, aby rozmieścić jego artefakty na nexusie. Ale kiedy skonfigurować mojego pom.xml tak (zaczerpnięte z Deploying Artifacts to Nexus):
<distributionManagement>
<!-- use the following if you're not using a snapshot version. -->
<repository>
<id>nexus</id>
<name>RepositoryProxy</name>
<url>scp://192.168.0.197/nexus/content/repositories/releases</url>
</repository>
<!-- use the following if you ARE using a snapshot version. -->
<snapshotRepository>
<id>nexus</id>
<name>RepositoryProxy</name>
<url>scp://192.168.0.197/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
... mvn deploy
wypisuje komunikat o błędzie:
Error deploying artifact: Exit code: 1 -
mkdir: cannot create directory `/nexus': Permission denied
W settings.xml
I skonfigurowany nazwę użytkownika i hasło tak:
<servers>
<server>
<id>nexus</id>
<username>tangens</username>
<password>********</password>
</server>
</servers>
Pytanie: Co konfiguracja muszę używać do wdrażania do NEX nas?
Próbowałem już https
zamiast scp
, ale z tego Maven wpadł problemów z brakujących certyfikatów.
Próbowałem http
zamiast scp
, ale secureci ma zainstalowany firewall blokujący dostęp do portu 80 (http), powodując przekroczenie limitu czasu.
EDIT:
Okazało się, że Nexus przechowuje swoje artefakty w /root/sonatype-work/nexus/storage/snapshots/
. Ale nie podoba mi się pomysł wprowadzenia poświadczeń konta root w moim settings.xml
.
EDIT:
Q: Czy włączone do wdrażania hosted repozytorium pod Nexus?
Tak, jest domyślnie włączona.
Czy Nexus nasłuchuje na porcie 80?
Jest apache działa na porcie 80. Server: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_wsgi/1.3 Python/2.5.2
Q: Jeśli firewall nie pozwala HTTP, dlaczego nie można po prostu dodać wyjątek dla połączeń HTTP z " host "IP?
Ponieważ założyłem, że SecureCI jest dobrze skonfigurowany i powinien istnieć sposób, aby to zrobić bez ulepszania instalacji. Ale może jestem tu zbyt naiwny.
Zintegrowalem twoje pytania w moim wpisie. – tangens
Przebiłem zaporę ogniową zgodnie z sugestią. Teraz mogę zrobić wdrożenie z 'http'. Jeśli nie pojawi się żadne inne rozwiązanie, które umożliwi mi wdrożenie bez zmiany konfiguracji, przyjmuję tę odpowiedź. Dziękuję Ci. – tangens
Ok. W międzyczasie dodałem kolejną sugestię (pytanie?). Ale dobrze wiedzieć. –