Maven: göreli yol ile bir kavanoz için bir bağımlılık ekleyin
Bir bağımlılık olarak benim pom eklemek istediğim özel bir kavanoz var.
Ama bir depoyu eklemek istemiyorum. Nedeni mvn compile
vb, gibi her zamanki maven benim emirlerimi kutunun dışında çalışmak istiyorum. (Geliştiriciler bir kendilerini bazı depoyu eklemek için talep etmeden).
Kavanoz kaynak kontrol 3rdparty bir lib içinde olmak istiyorum, ve pom.xml dosyadan göreli yol ile bağlantı.
Bu yapılabilir mi? Nasıl?
CEVAP
Kavanoz kaynak kontrol 3rdparty bir lib içinde olmak istiyorum, ve pom.xml dosyadan göreli yol ile bağlantı.
Eğer gerçekten bu (eğer kurumsal bir depo olarak kullanabilirsiniz. anlamak istemiyorsanız, o zaman benim tavsiyem "" bu proje için yerel ve için . dosya deposu kullanmak olacaktır ^strong>kullanmak değilsystem
kapsamlı bir bağımlılık. system
kapsamlı kaçınılmalıdır, bu tür bağımlılıkları pek çok durum (montaj gibi) çalışmıyor, yararları daha fazla sorunları neden olur.
Bunun yerine bir depo projesi için yerel ilan:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${basedir}/my-repo</url>
</repository>
</repositories>
Üçüncü parti var localRepositoryPath
parametresi install:install-file
kullanarak: lib yükleyin
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
Güncelleme:install:install-file
sürümü eklentisi 2.2 kullanırken localRepositoryPath
yok sayıyor gibi görünüyor. Ancak, bu eklenti sürüm 2.3 ve üstü çalışıyor. Kullanım sürümü belirtmek için eklentinin tam adı:
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>
Son olarak, başka bir bağımlılık gibi beyan (ama system
kapsam olmadan)
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
Bu IMHO bağımlılık iyi bir vatandaş gibi muamele olacak system
bir kapsam montaj dahil ve benzeri olacaktır (örneğin) kullanarak daha iyi bir çözümdür.
Şimdi, "doğru yol" bu durumla başa çıkmak için bir şirket ortamında (belki de buradaki olay değil, kurumsal bir depo kullanmak olacaktır. bu söz var
Nasıl bir bağımlılık en son sürümünü k...
Sunucu uygulaması için bağımlılık 3.0 ...
Maven bir bağımlılık ekleyin...
SQL Server için maven bağımlılık kurma...
Maven: bağımlılık POM ekledikten sonra...