Bulabildiğim en iyi çözüm şu adımlardan oluşur:
mvn-repoMaven eserlerinizi barındırmak için bir şube oluşturun .
- Eserlerinizi github'a göndermek için github site-maven-eklentisini kullanın.
- Maven'ı uzaktan kumandanızı
mvn-repomaven deposu olarak kullanacak şekilde yapılandırın .
Bu yaklaşımı kullanmanın çeşitli faydaları vardır:
- Maven eserleri kaynağınızdan ayrı olarak adlandırılan ayrı bir dalda
mvn-repotutulur, tıpkı github sayfaları olarak adlandırılan ayrı bir dalda tutulur gh-pages(github sayfaları kullanıyorsanız)
- Önerilen diğer çözümlerden farklı olarak,
gh-pagesbunları kullanıyorsanız, sizinle çakışmaz .
- Konuşlandırma hedefiyle doğal olarak bağlanır, böylece öğrenilecek yeni maven komutları olmaz. Sadece
mvn deploynormalde yaptığınız gibi kullanın
Uzak bir maven deposuna yapay nesneleri dağıtmanın tipik yolu kullanmaktır mvn deploy, bu yüzden bu çözüm için bu mekanizmaya yama yapalım.
İlk olarak, maven'e yapay nesneleri hedef dizininizdeki geçici bir hazırlama konumuna dağıtmasını söyleyin. Bunu şu adrese ekleyin pom.xml:
<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 koşmayı deneyin mvn clean deploy. Maven deponuzu dağıttığını göreceksiniz target/mvn-repo. Bir sonraki adım, dizini GitHub'a yüklemesini sağlamaktır.
~/.m2/settings.xmlGithub'ın GitHub'a iletebilmesi için kimlik doğrulama bilgilerinizi ekleyin site-maven-plugin:
<!-- 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>
(Belirtildiği gibi, lütfen chmod 700 settings.xmlkimsenin dosyadaki şifrenizi okuyamamasını sağladığınızdan emin olun . Birisi site-maven-eklentisinin bir yapılandırma dosyasında kullanmak yerine bir şifre sormasını nasıl sağlayacağını biliyorsa, bana bildirin.)
Ardından GitHub'a pom'nıza site-maven-pluginaşağıdakileri ekleyerek yeni yapılandırdığınız yeni sunucuyu bildirin :
<properties>
<!-- github server corresponds to entry in ~/.m2/settings.xml -->
<github.global.server>github</github.global.server>
</properties>
Son olarak, site-maven-plugingeçici sahneleme mvn-repodeposundan Github'daki şubenize yüklenecek şekilde yapılandırın :
<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-repoDal sizin için oluşturulacak, mevcut gerekmez.
Şimdi mvn clean deploytekrar koş . Maven-deploy-plugin'in dosyaları hedef dizindeki yerel hazırlama havuzunuza "yüklediğini", ardından bu dosyaları yürüten ve sunucuya gönderen site-maven-eklentisini 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 adresini ziyaret edin, şubeyi seçin mvn-repove tüm ikili dosyalarınızın orada olduğunu doğrulayın.

Tebrikler!
Artık maven eserlerinizi sadece koşarak fakir bir adamın halka açık deposuna dağıtabilirsiniz mvn clean deploy.
Atmak isteyeceğiniz bir adım daha var, bu da deponuza bağlı olan pompayı deponuzun nerede olduğunu bilmek için yapılandırmaktır. Projenize bağlı herhangi bir projenin pom'una aşağıdaki snippet'i ekleyin:
<repositories>
<repository>
<id>YOUR-PROJECT-NAME-mvn-repo</id>
<url>https://github.com/YOUR-USERNAME/YOUR-PROJECT-NAME/raw/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
Şimdi jar dosyalarınızı gerektiren herhangi bir proje onları otomatik olarak github maven deponuzdan indirecektir.
Düzenleme: yorumlarda belirtilen sorunu önlemek için ('İşleme oluşturulurken hata oluştu: Geçersiz istek.' Özellikler / ad 'için nil bir dize değil.'), Github'daki profilinizde bir ad belirttiğinizden emin olun.