Kavanozun kaynak denetiminde 3. parti bir lib'de olmasını ve pom.xml dosyasından göreli yolla bağlantı kurmasını istiyorum.
Bunu gerçekten istiyorsanız (anlayın, bir şirket deposunu kullanamıyorsanız), tavsiyem projenin yerelinde bir "dosya deposu" kullanmak ve system
kapsamlı bir bağımlılık kullanmamak olacaktır . system
Kapsamına sahip (örneğin montaj olarak) bu tür bağımlılıkları birçok durumda iyi çalışmayan kaçınılmalıdır, bunlar faydadan çok sorunlara neden olmaktadır.
Bunun yerine, projeye yerel bir depo bildirin:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/my-repo</url>
</repository>
</repositories>
Üçüncü taraf lib'inizi install:install-file
şu localRepositoryPath
parametreyle oraya kurun :
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Güncelleme: O anlaşılmaktadır install:install-file
görmezden localRepositoryPath
Eklentinin sürüm 2.2 kullanırken. Ancak, eklentinin 2.3 ve sonraki sürümleriyle çalışır. Sürümü belirtmek için eklentinin tam adını kullanın:
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 belgeleri
Son olarak, başka bir bağımlılık gibi ilan edin (ancak system
kapsamı olmadan ):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
Bu, IMHO'nun bir system
kapsamı kullanmaktan daha iyi bir çözümdür, çünkü bağımlılığınız iyi bir vatandaş gibi muamele görecektir (örneğin bir meclise dahil edilecektir).
Şimdi, bu durumla kurumsal bir ortamda (belki de durum böyle değil) başa çıkmanın "doğru yolunun" kurumsal bir depo kullanmak olacağını belirtmeliyim.
localRepositoryPath
...