2008-12-12 12 views
13

Czy możliwe jest hostowanie repozytorium Maven obsługującego artefakty (przynajmniej pliki JAR) z systemu wydań plików SourceForge (ponieważ są już tam obecne, a SF udostępnia statystyki pobierania i inne) ?Konfigurowanie repozytorium Maven przy użyciu serwerów plików SourceForge

Wszystkie repozytoria, które widziałem, korzystają z tego samego układu katalogów, ale czy jest to koniecznością? URL Pobierz musiałby wyglądać bardziej jak http://sf.net/something.cgi?file-id=1234567

Nie będzie niewielka liczba plików w projekcie tylko, dlatego, że utrzymanie pobierania URL w jakimś pliku repozytorium metadanych XML pół-ręcznie jest jeszcze opcja .

Uwaga: Jest to rodzaj przeciwnym pytanie do How can I deploy artifacts from a Maven build to the SourceForge File Release System?

Wyjaśnienie: chcę umieścić pliki w systemie plików wydania (projekt pliki), a nie w przestrzeni internetowej projektu lub repozytorium Subversion .

Odpowiedz

3

Tak, można. Ale jest nieco zawikłany:

Jeśli spojrzysz na projekt taki jak ten http://jwebunit.sourceforge.net/m2-repo/, zobaczysz, że ujawniają one całkowicie legalne repozytorium maven. Oto kilka kroków, aby to zrobić:

Teoretycznie wystarczy dodać odpowiednią część folderu ~/.m2/repo do katalogu głównego svn w danym projekcie (w folderze o nazwie m-2repo, na przykład jwebunit zrobił). Sourceforge udostępnia pełną strukturę svn dostępną przez Internet, więc masz swoje repozytorium.

Ale; problemem jest to, że maven wymaga, aby zdalne repozytoria zawierały sumy kontrolne MD5 wszystkich elementów. Kiedy uruchomisz "maven install" w kierunku repozytorium plików lolkowych, nie uzyskasz wygenerowanych sum kontrolnych.

Sposób, w jaki rozwiązałem to lokalnie, polega na skonfigurowaniu apache/webdav w określonym folderze na moim komputerze. Następnie używam tego folderu jako celu "wdrożenia mvn". Potem po prostu zatrzymuję ten pełny folder sprawdzany w subversion na sourceforge.

+0

Czy to naprawdę svn projektu? Lub ich przestrzeń internetowa? Hostowanie repozytoriów w przestrzeni internetowej jest sprzeczne z ich warunkami korzystania z usług, które uważam (wpadł w problem, próbując hostować repo mercurial tam). Tak czy inaczej, chcę umieścić artefakty w ich sekcji wydania plików (pliki do pobrania projektu). – Thilo

0

Bardzo ładne rozwiązanie, dzięki krosenvold. Dodatkowo możesz spróbować wygenerować sumy kontrolne z tą częścią pom:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <executions> 
     <execution> 
      <goals> 
       <goal>install</goal> 
      </goals> 
      <configuration> 
       <createChecksum>true</createChecksum> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
0

Przepraszamy, ale nie widzę sposobu, aby połączyć dwa pytania razem. Dodałem trochę informacji do podobnego pytania (duplikatu?) Tutaj. Pokazuje, w jaki sposób można wprowadzać do SF bez użycia jakichkolwiek sztuczek pom lub wtyczek.

How can I deploy artifacts from a Maven build to the SourceForge File Release System?

+0

Tak, ta strona jest również powiązana z samym pytaniem (jako "coś przeciwnego"). – Thilo

+0

Ooops. Przepraszam, Thilo. Czy mogę usunąć ten wpis? – Gray

Powiązane problemy