SORU
25 Kasım 2010, PERŞEMBE


Nasıl maven-3 verimli bir anlık zaman damgalı başa çıkıyorsunuz?

Şimdi maven-3 yaptı drop support için <uniqueVersion>false</uniqueVersion> için anlık eserler, görünen o ki gerçekten ihtiyaç için kullanın zaman damgalı GÖRÜNTÜLERİ. Özellikle maven 3 DAHİLİ olarak kullanıyor mu, hangi m2eclipse, bu durumdan etkilenecek gibi görünüyor, güncelleme-anlık ANLIK benzersiz olmadığında çalışmıyor.

En iyi practice before uniqueVersion tüm görüntüleri ayarlamak için=false görünüyordu

Şimdi, tüm bunlardan sonra eski anlık görüntüleri silmek için normal intervalls içinde mümkün olan nexus merkezi bir depo, tarafından yönetilir zaman damgalı sürümü, geçmek için büyük bir sorun yok gibi görünüyor.

Bu sorun, yerel geliştirici iş istasyonları vardır. Yerel depo hızlı bir şekilde büyümek demekçokbenzersiz görüntüleri ile büyük.

Nasıl bu sorunla başa çıkmak için ?

Şimdi ayarlayamadı Olası çözümler görüyorum değil mi:

  • Geliştiriciler düzenli aralıklarla depo fustration çok uzun zaman silmek için alır ve gerekli her şeyi indirmek için bile uzun süre giden) temizlemek için isteyin
  • Tüm silinmesine neden olan bazı komut dosyası oluşturunANLIK görüntüyerel Depo ve sor dizinlerden zaman daha sonra ilk, ama hala güncel ve anlık çalıştırma indirmek için oldukça uzun bir zaman alır) zaman komut dosyası çalıştırmak için geliştiriciler
  • bağımlılık:tasfiye-yerel-depo plugin (eclipse çalıştırın, dosyalar açılacak, her projeden çalıştırılması gerekiyor zaman sorunu var Mı) kullanın
  • her iş istasyonu üzerinde rabıta kurmak ve eski anlık görüntüleri temiz bir iş (en iyi sonuç, ama 50 nexus sunucu korumak istemiyorum, bellek her zaman geliştirici iş istasyonları üzerinde sıkı plus) ayarlayın
  • tüm ANLIK görüntüleri kullanarak durdurmak

Sabit disk alanı doldurmasını yerel depo tutmak için en iyi yolu nedir ?

Güncelleme:

Bu beaviour doğrulamak için daha fazla bilgi vermek için küçük bir nexus server Kur, iki proje (a ve b) yapı ve deneyin:

bir:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.glauche</groupId>
  <artifactId>a</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <distributionManagement>
    <snapshotRepository>
        <id>nexus</id>
        <name>nexus</name>
        <url>http://server:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

</project>

b:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>de.glauche</groupId>
  <artifactId>b</artifactId>
  <version>0.0.1-SNAPSHOT</version>
    <distributionManagement>
    <snapshotRepository>
        <id>nexus</id>
        <name>nexus</name>
        <url>http://server:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
 <repositories>
    <repository>
        <id>nexus</id>
        <name>nexus</name>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <url>http://server:8081/nexus/content/repositories/snapshots/</url>
    </repository>
 </repositories>
  <dependencies>
    <dependency>
        <groupId>de.glauche</groupId>
        <artifactId>a</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>
</project>

Maven ve çalışma için zaman şimdi, "" "" istiyorum . dağıtmak

a-0.0.1-SNAPSHOT.jar
a-0.0.1-20101204.150527-6.jar
a-0.0.1-SNAPSHOT.pom
a-0.0.1-20101204.150527-6.pom

yerel depoda. Yeni zaman damgası her zaman bir sürüm ile dağıtmak hedef işletiyorum. Aynı nexus sunucudan Anlık güncelleştirme çalıştığımda oluyor (kapat"", yerel deposundan silmek, oluşturmak "b") . Proje

Anlık görüntüler bir sürü oluşturmak olsun, bir ortamda (hudson server ...), yerel reposioty eski sürümleri ile doldururhızlı

Güncelleme 2:

Bu benim başarısız olduğunu nasıl test yaptım bazı testler var. Her test temiz her şeyi (de/glauche her iki makine ve nexus silme alır) karşı çalıştırın

  • mvn maven 2.2.1 ile dağıtmak :

makine üzerinde yerel Bir depo snapshot.jar snapshot-timestamp.jar içermiyor

AMA: okur: nexus, meta sadece bir zaman damgalı kavanoz

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>de.glauche</groupId>
  <artifactId>a</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <versioning>
    <snapshot>
      <timestamp>20101206.200039</timestamp>

      <buildNumber>1</buildNumber>
    </snapshot>
    <lastUpdated>20101206200039</lastUpdated>
  </versioning>
</metadata>
  • m2eclipse (m3 final gömülü) güncelleme bağımlılıklar (makine B) - ^ çalıştırın . yerel depo snapshot.jar snapshot-timestamp.jar :(
  • dış maven ile paket hedefi 2.2.1 - ^ çalıştırın . yerel depo snapshot.jar snapshot-timestamp.jar :(

Tamam, bir sonraki maven 3.0.1 (proje tüm izlerini çıkardıktan sonra) ile deneyin

  • makine üzerinde yerel depo daha iyi görünüyor, sadece tek bir sigara-zaman damgalı kavanoz

  • nexus sadece bir zaman damgalı kavanoz, meta verileri okur:

    de.glauche bir 0.0.1-SNAPSHOT

    <snapshot>
      <timestamp>20101206.201808</timestamp>
      <buildNumber>3</buildNumber>
    </snapshot>
    <lastUpdated>20101206201808</lastUpdated>
    <snapshotVersions>
      <snapshotVersion>
        <extension>jar</extension>
        <value>0.0.1-20101206.201808-3</value>
        <updated>20101206201808</updated>
      </snapshotVersion>
      <snapshotVersion>
        <extension>pom</extension>
        <value>0.0.1-20101206.201808-3</value>
        <updated>20101206201808</updated>
      </snapshotVersion>
    </snapshotVersions>
    

  • m2eclipse (m3 final gömülü) güncelleme bağımlılıklar (makine B) - ^ çalıştırın . yerel depo snapshot.jar snapshot-timestamp.jar :(

  • dış maven ile paket hedefi 2.2.1 - ^ çalıştırın . yerel depo snapshot.jar snapshot-timestamp.jar :(

Yani, özetlemek gerekirse: "dağıtmak" maven3 işlerinde amacı, 2.2.1, makine oluşturma görünüyor yerel depodaki daha iyi. Ama alıcı her zaman timestamed sürümleri bir sürü ile sona erer

Neyi yanlış yapıyorum ?

Güncelleme 3

Ben de diğer çeşitli yapılandırmaları test, nexus yerine artifactory - ^ ilk yaptı . aynı davranış. Daha sonra linux maven 3 istemciler depo yöneticisi - ^ anlık görüntüler indirmek için kullanın . yerel depo hala anlık zaman damgalı vardır :(

CEVAP
1 Aralık 2010, ÇARŞAMBA


<uniqueVersion> yapılandırma dağıtmış eserler için uygulanan (mvn dağıtmak) Nexus gibi Maven depo için.

Nexus bu kaldırmak için kolay ANLIK depoyu her gün temizlemek için otomatik bir iş yarattı. Shapshots belirli sayıda tutmak ya da belli bir süre için onları tutmak için yapılandırılabilir. Süper kolay ve harika çalışıyor.

Eserler yerel depo üzerinde bir geliştirici makinesi al oradan "yükle" amaç ve kullanmayın bu zaman...onlar sadece tutmak yerine tek ANLIK sürümü sürece sen de artan Revizyon numarası (örneğin 1.0.0-ANLIK 1.0.1-ANLIK).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • mliskIT

    mliskIT

    29 Mart 2012
  • Tomas N

    Tomas N

    14 Kasım 2010
  • Whizzpopping

    Whizzpopping

    10 Kasım 2005