2013-10-04 26 views
7

Mam mały problem z moją konfiguracją Mavena. Wszystkie inne pytania i odpowiedzi tutaj nie rozwiązały mojego problemu, więc zaczynam nowe pytanie.Maven nie używa lokalnego repozytorium

Mój problem polega na tym, że moje Maven nie korzysta z lokalnego repozytorium. To zawsze pobiera artefakty ze zdalnych repozytoriów.

Po pobraniu artefaktu lub podczas budowania projektu jest on instalowany w lokalnym repozytorium, więc ścieżka jest poprawna.

Problem polega na tym, że gdy buduję jeden projekt SNAPSHOT, jest on instalowany tylko w lokalnym repozytorium (powinienem tak wyglądać, nie chcę go publikować za każdym razem w moim nexusie). Kiedy buduję kolejny projekt z poprzednim, jako zależność w pom.xml maven chce pobrać artefakt z serwera nexus, gdzie go nie znalazł, zamiast pobierać go z lokalnego repozytorium.

To mój Maven config:

<?xml version="1.0" encoding="UTF-8"?> 
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 
    <localRepository>C:\Users\Marc\.m2\repository</localRepository> 
    <interactiveMode>false</interactiveMode> 
    <usePluginRegistry>false</usePluginRegistry> 
    <pluginGroups> 
    </pluginGroups> 
    <servers> 
    <server> 
     <id>releases</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    <server> 
     <id>snapshots</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    <server> 
     <id>nexus</id> 
     <username>MY_USERNAME</username> 
     <password>MY_PASSWORD</password> 
     <filePermissions>664</filePermissions> 
     <directoryPermissions>775</directoryPermissions> 
    </server> 
    </servers> 
    <profiles> 
    <profile> 
     <id>nexussrv</id> 
     <repositories> 
     <repository> 
      <id>snapshots</id> 
      <url>http://nexus/content/repositories/snapshots</url> 
      <snapshots> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
      </snapshots> 
      <releases> 
      <enabled>false</enabled> 
      </releases> 
     </repository> 
     <repository> 
      <id>releases</id> 
      <url>http://nexus/content/repositories/releases</url> 
      <releases> 
      <enabled>true</enabled> 
      <updatePolicy>always</updatePolicy> 
      </releases> 
      <snapshots> 
      <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>nexus</id> 
      <url>http://nexus/content/groups/public</url> 
     </repository> 
     </repositories> 
    </profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>nexussrv</activeProfile> 
    </activeProfiles> 
</settings> 

Pobieranie z Nexus i wydawniczych artefaktów (snapshot i Release) do pracy nexus z tej konfiguracji, ale nie korzysta z artefaktów z lokalnego repozytorium.

Dzięki za pomoc!

Odpowiedz

14

pan skonfigurowany, że zrzuty powinny zawsze (<updatePolicy>always</updatePolicy>) można pobrać z migawka Nexus. Więc nawet jeśli twoja lokalna pamięć podręczna (~/.m2/repository) ma nowszą wersję migawki, maven próbuje pobrać ją ze skonfigurowanego serwera (http://nexus/content/repositories/snapshots).

Pomyśl o zmianie parametru updatePolicy dla pozycji migawki. Na przykład. jeśli masz serwer CI, który codziennie wysyła (SNAPSHOT) do snapshot-nexus, zmień wartość updatePolicy na daily.

+1

mhh. Ustawiam go zawsze z dnia na dzień, ale wciąż próbuję go odebrać z nexusa. –

+4

Jak już wspomniano, maven sprawdza nexus raz dziennie. Jest to użyteczne, jeśli masz tam kilka migawek (np. Jeśli serwer CI go wdroży). Jeśli nigdy nie będziesz mieć shnapshotów na nexusie, powinieneś ustawić updatePolicy tak, by nigdy. – MrD

+1

działa już teraz. dzięki! –

Powiązane problemy