Maven e o Google Code

Vocês já sabem: eu tenho vários projetos hospedados no Google Code. Acho um lugar legal para projetos pessoais, pequenos. Contudo, acho que carece de mais funcionalidades para abraçar um projeto maior. Para mim e meus projetos, está ótimo. Os dois principais projetos que tenho hospedados lá são o Alfred e o VeículoZ. O primeiro em Java, o segundo em .NET Compact.

Agora também resolvi aderir ao Maven. Nunca havia usado, mas me integrei em um novo projeto no Serpro e que faz uso constante desta ferramenta. Aprendi, gostei e agora estou usando em todos meus novos projetos. O primeiro desafio foi integrar o Maven ao Google Code. Por exemplo, como eu poderia fazer um Deploy de meu site Maven lá? Como eu posso hospedar meu repositório lá? De pouco em pouco, acabei descobrindo o caminho das pedras e compartilho com vocês.

Primeiro, vamos configurar o nosso arquivo POM para que use o Google Code como repositório. A ideia é simples, nosso repositório Subversion servirá como repositório Maven. Então, na seção de repositórios no POM, você coloca algo parecido com este código:

	
		
			alfred-site
			Deployment Server
			ftp://alfredlibrary.org/var/www/alfred/maven
		
		
			googlecode-release
			dav:https://alfredlibrary.googlecode.com/svn/repository/release
		
		
			googlecode-snapshot
			dav:https://alfredlibrary.googlecode.com/svn/repository/snapshot
		
	

Este aí é o repositório do Alfred. Observe a tag ID. O importante agora é você editar seu arquivo settings.xml, que normalmente fica em uma pasta .m2 em sua pasta de usuário. Lá você deve colocar duas entradas na seção de Servers.

		
			googlecode-snapshot
			marlon.carvalho
			meupassword
		
		
			googlecode-release
			marlon.carvalho
			meupassword
		

Não se esqueça também de incluir o Wagon na seção de build. Fica mais ou menos assim:

	
		
			
				org.apache.maven.wagon
				wagon-webdav
				1.0-beta-2
			
		

Pronto, caso você faça agora um mvn deploy, ele colocará seus arquivos no SVN do Google Code. A segundo questão agora é como automaticamente já incluir na lista de Downloads os seus arquivos. Agora você terá que usar um plugin de terceiros. Este plugin se chama Google Code Upload e está localizado em http://maven.riedelcastro.org/gcupload-maven-plugin/. Agora vamos configurar este plugin. Primeiro, temos que adicionar ele na seção de plugins.

			
				org.riedelcastro
				gcupload-maven-plugin
				0.9
				
					googlecode
					false
					alfredlibrary
					
						
							jar
							Featured
						
						
							javadoc
							jar
							Featured
						
						
							sources
							jar
							Featured
						
					
				
			

Observe aí a seção de uploads! Eu estou informando quais arquivos serão enviados para a lista de downloads. No meu caso, o primeiro será o próprio jar do projeto. Depois, o Javadoc e, finalmente, o código fonte. Este plugin tentará encontrar os arquivos alfred-1.0.0.jar, alfred-1.0.0-sources.jar e alfred-1.0.0-javadoc.jar. É importante estar atento ao nome que você coloca ali no <postfix>. Um outro detalhe importantíssimo. Definir no seu settings.xml um Server com seu login e senha no Google Code. A ideia é fazer igual a como foi feito logo acima. Observe neste último trecho de código a tag <serverId>. Coloca aí o ID que você deu lá no settings.xml.

Concluído isto, faça um mvn gcupload:gcupload para fazer um teste e verificar se o arquivo encontra-se lá na lista de downloads.