俺々Mavenリポジトリにデプロイする方法

自分で作ったMavenプロジェクトをパブリックなリポジトリとして公開したくなったことはありませんか?簡単にセントラルリポジトリにデプロイできればいいのですが手間なので今回は野良リポジトリを作り、そこに公開する方法をご紹介します。

POMを書く

scmを書く

まずはscmを記述して、チェックアウト、チェックインをするリポジトリのURLを記述しましょう。GitHubなら以下のような感じです。

<scm>
	<url>http://github.com/nagaseyasuhito/fatsia</url>
	<connection>scm:git:https://github.com/nagaseyasuhito/fatsia.git</connection>
	<developerConnection>scm:git:https://github.com/nagaseyasuhito/fatsia.git</developerConnection>
</scm>

デフォルトではconnectionが使われるので、developerConnectionは記述しなくても大丈夫です。

distributionManagementを書く

distributionManagementはデプロイする先のURLを記述します。ftpやwebdav、scmなどプロバイダーがあればどこにでもデプロイすることができます。

<distributionManagement>
	<repository>
		<id>mavenrepository.googlecode.com</id>
		<url>scm:svn:https://mavenrepository.googlecode.com/svn/trunk</url>
	</repository>
</distributionManagement>

上記はgooglecode上のsvnリポジトリにデプロイする設定です。GitHubにデプロイさせようかと思ったのですが、gitのプロバイダープラグインがイケてないらしく、デプロイできませんでした。バージョンあがれば直るかも?

maven-release-plugin

tagNameFormatはその名の通りタグの名前です。デフォルトは@{project.artifactId}-@{project.version}なのですが、個人的な好みで@{project.version}にしています。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-release-plugin</artifactId>
	<version>2.2.2</version>
	<configuration>
		<tagNameFormat>@{project.version}</tagNameFormat>
	</configuration>
</plugin>

maven-deploy-plugin

maven-deploy-pluginではデプロイに必要なプラグインの設定を記述します。distributionManagementのurlから自動的に解決してくれたらいいのにね。

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-deploy-plugin</artifactId>
	<version>2.7</version>
	<dependencies>
		<dependency>
			<groupId>org.apache.maven.wagon</groupId>
			<artifactId>wagon-scm</artifactId>
			<version>2.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.maven.scm</groupId>
			<artifactId>maven-scm-provider-svnexe</artifactId>
			<version>1.5</version>
		</dependency>
	</dependencies>
</plugin>

デプロイしてみる

あとは普通にmvn release:prepare release:performすればdistributionManagementで指定したリポジトリにデプロイされます。自分は以下のようなシェルスクリプトを書いてデプロイしています。

#/bin/sh
rm -Rf $1 &&
git clone https://github.com/nagaseyasuhito/$1.git &&
cd $1 &&
mvn clean release:prepare release:perform -B

何かのご参考になれば!

「俺々Mavenリポジトリにデプロイする方法」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>