2015-08-06 7 views
5

Czy istnieje menedżer repozytorium, który zarządza binarnymi plikami dll, a także integruje się dobrze z Jenkinsem?Menedżer repozytorium, który zarządza plikami binarnymi dll (Embedded C/C++ artefakty projektu) i który integruje się z Jenkins

Czy Nexus może być używany do zarządzania plikami dll, ponieważ te pliki są tworzone jako część projektów Embedded C/C++ i czy program Nexus Artifact Manager obsługuje/integruje się z takimi Projektami, ponieważ obsługuje głównie projekty Java? Czy istnieje sposób automatycznego zarządzania przesyłaniem i pobieraniem takich artefaktów projektu z Nexusa/innych menedżerów artefaktów bez użycia pliku POM? Zasugeruj, jeśli są inni Menedżerowie Artefaktów, który obsługuje artefakty binarne.

Odpowiedz

5

Menedżer repozytorium Nexus jest zorientowany na Javę, ale można go wykorzystać do przechowywania dowolnych plików. Pliki binarne wszystkich typów lub nawet pliki tekstowe.
Aby zautomatyzować proces wysyłania pliku, można użyć maven z linii poleceń:

mvn deploy:deploy-file -DgroupId=com.you -DartifactId=file -Dversion=1.0 -Dpackaging=exe -Dfile=c:\out\file.exe -Durl=http://yourserver/nexus/content/repositories/releases -DrepositoryId=releases 

Następnie, aby pobrać plik, powinieneś być w stanie dostać się bezpośrednio z następującym adresem URL:

wget http://yourserver/nexus/content/repositories/releases/com/you/file/1.0/file-1.0.exe 

To jest proste podejście do korzystania z Nexusa jako ogólnego repozytorium artefaktów.

Mam nadzieję, że to pomoże.

+0

Dziękujemy za informacje na temat części Nexus. Ale znowu wierzę, że istnieje zależność od części maven i powyższe polecenie mvn utworzy plik pom, z którym można pracować. Jednak sprawdzę za pomocą dostarczonych poleceń i spróbuję zintegrować to samo w sposób zautomatyzowany za pomocą Jenkinsa. Aby uzyskać dostęp do plików, które zostały przesłane do Nexusa, należy pobrać za pomocą polecenia wget z kroku kompilacji w Jenkins lub czy istnieje jakaś wtyczka, którą należy zintegrować z wtyczką Nexus Integration w Jenkins? – drsdarpan

+0

Do przesłania nie potrzebujesz pliku pom. Polecenie działa tak, jak jest. Wszystkie parametry są w linii poleceń. Jeśli chodzi o integrację z Jenkinsem, zajrzyj na https://wiki.jenkins-ci.org/display/JENKINS/Repository+Connector+Plugin –

+0

Dzięki za informację na wtyczce do repozytorium, postaram się to sprawdzić i jeśli to zadziała cóż, byłoby to pomocne, ponieważ Nexus został wykorzystany w niektórych projektach. – drsdarpan

7

Artifactory może być używany do przechowywania dowolnego typu plików binarnych.
Począwszy od Artifactory 4.0, możesz utworzyć generic repositories, który umożliwia przesyłanie pakietów dowolnego typu. Nie będziesz musiał przesyłać żadnych plików POM, a Artifactory nie będzie musiał obliczać żadnych metadanych (na przykład metadane Mavena).
Aby wdrożyć pliki można użyć REST API lub UI, np

curl -uUSER:PASS -T file.dll http://localhost:8081/artifactory/dll-local/path/to/file.dll 

Jeśli masz pewien układ, który chcesz użyć do tego repozytorium można utworzyć custom layout i skojarzyć go z repozytorium. Może to być przydatne do automatycznego czyszczenia migawek/wersji integracyjnych i innych zadań zarządzania modułem.


Zastrzeżenie: Jestem związany z Artifactory

+1

Dziękujemy za informację na temat narzędzia do pielęgnacji. Byłbym bardziej zainteresowany układem niestandardowym. Popatrzę na to raz. – drsdarpan

+0

Czy jest też jakaś wtyczka zależności, która musi być zintegrowana z wtyczką Artifactory do pracy z Jenkinsem? – drsdarpan

+0

@drsdarpan the Jenkins Artifactory ma pewne opcjonalne zależności od innych wymienionych wtyczek [tutaj] (https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin) –

2

Otwarta wersja źródłowego Nexus Nexus (OSS) to obsługuje wiele formatów repozytorium out of the box tym Maven, Nuget, KMP, RubyGems i innych. Nexus działa tylko na Javie (np. Jenkins). Nie jest to tylko Java ...

W zależności od tego, w jaki sposób planujesz uzyskać pliki DLL z repozytorium, różne formaty mogą być mniej lub bardziej odpowiednie dla twojego użycia. Możesz nawet użyć niestandardowego formatu, ale wtedy możesz polegać na niestandardowych narzędziach.

Scenariusze widziałem u wielu klientów są

  • używając repo Maven i ciągnięcie pliki albo w sposób Maven budować razem z Maven NAR Plugin (używany do rodzimej rozwoju z C/C++)

  • użyciu repo Maven i ciągnąc za pośrednictwem HTTP GET planu połączenia przy użyciu języka skryptowego/build narzędzie wyboru

  • wykorzystaniem formatu Nuget i przechowywania plików DLL w pakietach Nuget w repo i korzystania Nuget je odzyskać dla projektów

Wszystkie te działają dobrze.

+0

Wielkie dzięki za udostępnienie różnych opcji wtyczek można zintegrować, aby przesyłać i pobierać pliki. Z pewnością przyjrzę się tym opcjom, ponieważ korzystanie z Nexusa będzie preferowanymi opcjami, ponieważ Nexus jest już używany w projektach Java, więc jeśli Nexus może również obsługiwać pliki binarne, byłoby świetnie. – drsdarpan

Powiązane problemy