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

  • funbro1

    funbro1

    11 Aralık 2007
  • Howard Pinsky

    Howard Pinsk

    6 AĞUSTOS 2006
  • NCIX Tech Tips

    NCIX Tech Ti

    2 Ocak 2007