A melhor solução que consegui encontrar consiste nestas etapas:
- Crie uma ramificação chamada
mvn-repopara hospedar seus artefatos de maven.
- Use o github site-maven-plugin para enviar seus artefatos ao github.
- Configure o maven para usar seu controle remoto
mvn-repocomo um repositório do maven.
Há vários benefícios em usar essa abordagem:
- Os artefatos do Maven são mantidos separados da sua fonte em uma ramificação separada chamada
mvn-repo, assim como as páginas do github são mantidas em uma ramificação separada chamada gh-pages(se você usar páginas do github)
- Ao contrário de outras soluções propostas, ele não entra em conflito com o seu,
gh-pagesse você estiver usando-o.
- Associa-se naturalmente ao destino de implantação, para que não haja novos comandos de preparação para aprender. Basta usar
mvn deploycomo faria normalmente
A maneira típica de implantar artefatos em um repositório de remessa remota é usar mvn deploy, então vamos corrigir esse mecanismo para esta solução.
Primeiro, diga ao maven para implantar artefatos em um local temporário de teste dentro do diretório de destino. Adicione isto ao seu 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>
Agora tente correr mvn clean deploy. Você verá que ele implantou seu repositório maven target/mvn-repo. O próximo passo é fazer o upload desse diretório para o GitHub.
Adicione suas informações de autenticação para ~/.m2/settings.xmlque o github site-maven-pluginpossa enviar para o GitHub:
<!-- 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>
(Como observado, certifique-se de chmod 700 settings.xmlgarantir que ninguém possa ler sua senha no arquivo. Se alguém souber como fazer o site-maven-plugin solicitar uma senha em vez de exigi-la em um arquivo de configuração, informe-me.)
Em seguida, informe o GitHub site-maven-pluginsobre o novo servidor que você acabou de configurar, adicionando o seguinte ao seu pom:
<properties>
<!-- github server corresponds to entry in ~/.m2/settings.xml -->
<github.global.server>github</github.global.server>
</properties>
Por fim, configure o site-maven-pluginupload do seu repositório temporário de armazenamento temporário para sua mvn-repofilial no Github:
<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>
O mvn-reporamo não precisa existir, ele será criado para você.
Agora corra mvn clean deploynovamente. Você deve ver o maven-deploy-plugin "carregar" os arquivos para o repositório de temporariedade local no diretório de destino e, em seguida, o site-maven-plugin comprometendo esses arquivos e enviando-os para o servidor.
[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] ------------------------------------------------------------------------
Visite github.com no seu navegador, selecione a mvn-reporamificação e verifique se todos os seus binários estão lá.

Parabéns!
Agora você pode implantar seus artefatos inventados no repositório público de um pobre simplesmente executando mvn clean deploy.
Há mais uma etapa que você deseja executar, que é configurar todos os poms que dependem do seu pom para saber onde está o seu repositório. Adicione o seguinte trecho ao pom de qualquer projeto que dependa do seu projeto:
<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>
Agora, qualquer projeto que exija seus arquivos jar os fará o download automaticamente do seu repositório github maven.
Edit: para evitar o problema mencionado nos comentários ('Erro ao criar confirmação: solicitação inválida. Para' properties / name ', nil não é uma string.'), Certifique-se de indicar um nome em seu perfil no github.