SORU
9 ŞUBAT 2010, Salı


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
9 ŞUBAT 2010, Salı


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • sghaff1

    sghaff1

    23 Mart 2009