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
Bulmak mümkün oldum en iyi çözüm bu adımdan oluşur:
- Bir şube
mvn-repo
maven yapılarınız ana bilgisayara oluşturun. - 28* *github github yapılarınız için itmek için kullanın.
- 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ırmvn-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.
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.
Böyle büyük mükafat 4 ne kadar uzak bi...
Oracle Maven depo şoförü BULUNMAKTAYDI...
nasıl yerel maven proxy depo (Nexus) k...
Çatal ve senkronize Google Code Subver...
Orijinal Github gelen yeni güncellemel...