SORU
23 Aralık 2012, Pazar


Hosting Maven github depo

Github üzerinde çalıştığım küçük bir açık kaynaklı bir kütüphane, bir çatal var. Bu maven ile diğer geliştiriciler için kullanılabilir hale getirmek istiyorum, ama kendi Nexus benim server çalıştırmak istemiyorum, ve bir çatal çünkü kolayca oss.sonatype.org dağıtmak istemiyorum.

Yapmak istediğim şey, başkalarının erişebilmeleri github için maven kullanarak dağıtmak için. Bunu yapmak için en iyi yolu nedir?

CEVAP
23 Aralık 2012, Pazar


Bulmak mümkün oldum en iyi çözüm bu adımdan oluşur:

  1. Bir şube mvn-repo maven yapılarınız ana bilgisayara oluşturun.
  2. 28* *github github yapılarınız için itmek için kullanın.
  3. Yapılandırma mvn-repo maven gibi uzak havuzunu kullanmak için maven.

Bu yaklaşımı kullanarak çeşitli yararları vardır:

  • Maven eserler ayrı bir şube çok ayrı bir dal gh-pages) tutulmaktadır mvn-repo denilen eğer github pages kullanırsanız () kaynağından ayrı tutulur
  • Başka çözüm önerileri aksine, eğer bunları kullanıyorsanız 10 ** ile çatışma değil.
  • Yeni maven vardır hayır dağıtan bir hedef ile doğal ilişkileri öğrenmek için komutları. Sadece normalde yaptığınız gibi mvn deploy

Uzak bir maven repo eserler dağıtmak tipik yolu mvn deploy, bu yüzden bu çözüm için bu mekanizmanın içine bakalım yama kullanmaktır.

İlk hedef dizin içinde geçici bir hazırlama yeri dağıtmak eserler maven söyle. Senin için bu pom.xml ekleyin:

<distributionManagement>
    <repository>
        <id>internal.repo</id>
        <name>Temporary Staging Repository</name>
        <url>file://${project.build.directory}/mvn-repo</url>
    </repository>
</distributionManagement>

<plugins>
    <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
            <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
        </configuration>
    </plugin>
</plugins>

Şimdi mvn clean deploy çalıştırmayı deneyin. target/mvn-repo maven depo kurdu göreceksiniz. Bir sonraki adım bu dizin github yüklemek için.

~/Kimlik bilgilerinizi ekleyin.github-maven-plugin site o kadar m2/settings.xml itebilir github için:

<!-- NOTE: MAKE SURE THAT settings.xml IS NOT WORLD READABLE! -->
<settings>
  <servers>
    <server>
      <id>github</id>
      <username>YOUR-USERNAME</username>
      <password>YOUR-PASSWORD</password>
    </server>
  </servers>
</settings>

(As, lütfen chmod 700 settings.xml kimse dosyasında parolanızı okuyabilir emin olmak için emin olun kaydetti. Eğer birisi sitesi-maven-plugin şifre sorması için nasıl bir yapılandırma dosyasında gerektiren yerine bilen varsa, bana bildirin.)

Sonra github-maven-plugin site sadece pom için aşağıdaki ekleyerek yapılandırılmış yeni sunucu: hakkında söyle

<properties>
    <!-- github server corresponds to entry in ~/.m2/settings.xml -->
    <github.global.server>github</github.global.server>
</properties>

Son olarak Yapılandır-maven-plugin sitesi github mvn-repo şubesine geçici hazırlama repo yükleme için:

<build>
    <plugins>
        <plugin>
            <groupId>com.github.github</groupId>
            <artifactId>site-maven-plugin</artifactId>
            <version>0.11</version>
            <configuration>
                <message>Maven artifacts for ${project.version}</message>  <!-- git commit message -->
                <noJekyll>true</noJekyll>                                  <!-- disable webpage processing -->
                <outputDirectory>${project.build.directory}/mvn-repo</outputDirectory> <!-- matches distribution management repository url above -->
                <branch>refs/heads/mvn-repo</branch>                       <!-- remote branch name -->
                <includes><include>**/*</include></includes>
                <repositoryName>YOUR-REPOSITORY-NAME</repositoryName>      <!-- github repo name -->
                <repositoryOwner>YOUR-GITHUB-USERNAME</repositoryOwner>    <!-- github username  -->
            </configuration>
            <executions>
              <!-- run site-maven-plugin's 'site' target as part of the build's normal 'deploy' phase -->
              <execution>
                <goals>
                  <goal>site</goal>
                </goals>
                <phase>deploy</phase>
              </execution>
            </executions>
        </plugin>
    </plugins>
</build>

mvn-repo şube mevcut olması gerekmez, sizin için oluşturulur.

Şimdi Çalıştır mvn clean deploy tekrar. Maven dağıtmak eklenti "" hedef dizini yerel hazırlama, depo, sonra-maven-plugin site bu dosyaları işlemek ve sunucu. doğru itmeye dosya yüklemek görmelisiniz

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building DaoCore 1.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
...
[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ greendao ---
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/greendao-1.3-20121223.182256-3.jar (77 KB at 2936.9 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/greendao-1.3-20121223.182256-3.pom (3 KB at 1402.3 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/1.3-SNAPSHOT/maven-metadata.xml (768 B at 150.0 KB/sec)
Uploaded: file:///Users/mike/Projects/greendao-emmby/DaoCore/target/mvn-repo/com/greendao-orm/greendao/maven-metadata.xml (282 B at 91.8 KB/sec)
[INFO] 
[INFO] --- site-maven-plugin:0.7:site (default) @ greendao ---
[INFO] Creating 24 blobs
[INFO] Creating tree with 25 blob entries
[INFO] Creating commit with SHA-1: 0b8444e487a8acf9caabe7ec18a4e9cff4964809
[INFO] Updating reference refs/heads/mvn-repo from ab7afb9a228bf33d9e04db39d178f96a7a225593 to 0b8444e487a8acf9caabe7ec18a4e9cff4964809
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.595s
[INFO] Finished at: Sun Dec 23 11:23:03 MST 2012
[INFO] Final Memory: 9M/81M
[INFO] ------------------------------------------------------------------------

Tarayıcınızda github.com ziyaret, mvn-repo şube seçin ve tüm ikili artık orada olduğundan emin olun.

enter image description here

Tebrikler!

Şimdi mvn clean deploy çalışan fakir bir adamın kamu repo maven yapılarınız sadece dağıtabilirsiniz.

Deponuzu nerede olduğunu bilmek senin pom bağlı olan gösteri yapılandırmak için almak isteyeceğiniz bir adım daha var. Ekleyin projenize bağlı herhangi bir proje pom için aşağıdaki kod:

<repositories>
    <repository>
        <id>YOUR-PROJECT-NAME-mvn-repo</id>
        <url>https://raw.github.com/YOUR-USERNAME/YOUR-PROJECT-NAME/mvn-repo/</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </repository>
</repositories>

Şimdi jar dosyalarınızı gerektiren herhangi bir proje otomatik olarak github maven deponuzu onları indirir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • Lin Steven

    Lin Steven

    17 EKİM 2006