2011-10-17 8 views
7

Mam następującą zależność w moim pom.xmlDlaczego Maven szuka pliku .pom, gdy plik .jar jest obecny w repozytorium?

<dependency> 
    <groupId>aGroup</groupId> 
    <artifactId>anArtifact</artifactId> 
    <version>aVersion</version> 
</dependency> 

mam również plik w katalogu anArtifact-aVersion.jar~/.m2/repository/aGroup/anArtifact/aVersion.

Kiedy rozpocząć budowę projektu, Maven szuka pliku zamiast przy użyciu pliku .jar.pom i próbuje pobrać następujące

http://repo1.maven.org/maven2/aGroup/anArtifact/aVersion/anArtifact-aVersion.pom

Jak mogę skonfigurować Maven wykorzystać istniejącą .jar plik?

+0

Czy umieściłeś ten jar w lokalnym repozytorium (~/.m2/repozytorium)? Czy zrobił to Maven? – Daniel

Odpowiedz

7

Każdy słoik musi mieć plik pom opisującą go, można po prostu dodać coś prostego tak:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>aGroup</groupId> 
    <artifactId>aArtifactId</artifactId> 
    <version>aVersion</version> 
    <packaging>jar</packaging> 
    <name>a Name</name> 
</project> 
+1

Czy to oznacza, że ​​w repozytorium powinien znajdować się taki plik ".pom" obok słoika, podczas gdy już istnieją pliki pom.xml i plugin.xml w samym pliku jar? Czy powinna to być kopia jednego z nich? – Dima

+1

Tak, pom musi tam być i tak, mogę być tylko kopią dołączonej pom. Lokalne repozytoria, takie jak artefakcyjne, po prostu wyodrębniają pom, jeśli załadujesz słoik. – HefferWolf

3

Szuka pom do, między innymi, rozwiązać przejściowe zależności.

2

Uruchom build przy użyciu „-o” przełącznik używać Maven w trybie offline. W trybie offline Maven nie sprawdza dostępności aktualizacji snapshot w odległych repozytoriach.

4

najlepszym sposobem, aby zainstalować artefaktu do lokalnego repozytorium, które nie zostały zbudowane przez Maven ist używać

mvn install:install-file ...

spojrzeć na bramki install:install.

2

POM, który jest zainstalowany w węźle nexus, opisuje słoik. Służy do pobierania zależności powiązanych z odpowiednim słojem. Kiedy dodajemy słoik jako zależność do naszego projektu, wszystkie słoiki wymagane dla dołączonego słoika zostaną zidentyfikowane poprzez odpowiednią pom.

Powiązane problemy