Chcę, aby słoik znajdował się w bibliotece 3rdparty w kontrolce źródła i łączył go ze ścieżką względną z pliku pom.xml.
Jeśli naprawdę chcesz to (zrozumieć, jeśli nie można korzystać z repozytorium korporacyjnego), to moja rada byłoby użyć „repozytorium plików” lokalnej do projektu i do nie używaćsystem
scoped zależność. Należy unikać zakresu system
, takie zależności nie działają dobrze w wielu sytuacjach (na przykład podczas montażu), powodują więcej problemów niż korzyści.
Tak więc, zamiast oświadczyć repozytorium lokalnego do projektu:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${basedir}/my-repo</url>
</repository>
</repositories>
zainstalować trzeci lib partii tam używając install:install-file
z parametrem localRepositoryPath
:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Aktualizacja: Wygląda na to, że install:install-file
ignoruje localRepositoryPath
podczas korzystania z wersji 2.2 wtyczki. Działa jednak z wersją 2.3 i późniejszą wtyczki. Więc używać pełnej nazwy wtyczki, aby określić wersję:
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \
-Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
maven-install-plugin documentation
Wreszcie zadeklarować go jak każdego innego uzależnienia (ale bez zakres system
):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
ten to IMHO jest lepszym rozwiązaniem niż użycie zakresu system
, ponieważ twoja zależność będzie traktowana jak dobry obywatel (np. zostanie on włączony do zespołu i tak dalej).
Teraz muszę nadmienić, że "właściwą drogą" do radzenia sobie z tą sytuacją w środowisku korporacyjnym (może nie w tym przypadku) byłoby skorzystanie z korporacyjnego repozytorium.
tak i zapłacić za uzyskanie straszny dsl, faza modelu nikt faktycznie można opisać i rozdzielczości zależność brzydko bluszcz ... sparowany z dobrym starym mrówek piekła. prawidłowy sposób gry jest opisany poniżej. EDYCJA: aby być bardziej grzecznym ... TO zapytał, jak rozwiązać problem z mavenem, a nie jak to zrobić w gradle. – gorefest
tak, może dodatek do instalacji maven nie powinien ignorować zależności systemu lub mieć dla niego przełącznik – Enerccio