ここのところ技術系の本の写経もサボってるし、ソレ系のRSSフィードを全然読まなくなったなぁと。
ってことで、久しぶりにLivedoor Reader開いたら、何年も前からチェックしてる おいぬま日報 にクソアツいエントリが↓
GitHubをMavenリポジトリにしよう | おいぬま日報
さっそくやってみます。
■ Mavenなプロジェクトを作る
Maven Project選んで
いつだってhogeな男です。
■ ひとまずローカルでdeployしてみる
おいぬまさんのその1.を参考にしてclean deployを叩いてみる。
■ Githubおよびプラグインの設定
極力英語で頑張ってみようということで↓を参考にして進めます。
http://stackoverflow.com/questions/14013644/hosting-a-maven-repository-on-github
Githubにリポジトリ作って、
push出来る状態にしておきます。
$ clip < ~/.ssh/id_rsa.pub #Githubのリポジトリに貼り付けて $ touch README.md $ git init $ git add README.md $ git commit -m "first commit" $ git remote add origin git@github.com:shinodogg/hoge.git $ git push -u origin master
settings.xmlで↓のようにGithubのアカウント周りの設定をして、
Mavenタスクを叩く時に参照するような感じになります。
<servers> <server> <id>github</id> <username>mailmail@hogehoge.com</username> <password>xxxxxx</password> </server> </servers>
pom.xmlの中では↓のようにpropertyを用意します。
<properties> <github.global.server>github</github.global.server> </properties>
GithubにデプロイするようのプラグインはSite Maven Pluginというものですが、
↓によると、最新バージョンは0.8のようです。
http://mvnrepository.com/artifact/com.github.github/site-maven-plugin
GithubのSite Maven Pluginがデプロイするリポジトリの情報をdistributionManagementで定義して、
<distributionManagement> <repository> <id>github</id> <name>GitHub ${project.artifactId} Repository</name> <url>https://raw.github.com/shinodogg/${project.artifactId}/mvn-repo</url> </repository> </distributionManagement>
いよいよビルド周りの設定になります。
<groupId>com.shinodogg</groupId> <artifactId>hoge</artifactId> <version>0.0.1-SNAPSHOT</version> ~略~ <build> <plugins> <!-- ローカルで作ったのをGithubにUploadする感じなのかな --> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.7</version> <configuration> <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository> </configuration> </plugin> <!-- Github用の諸々の設定は公式サイトで https://github.com/github/maven-plugins --> <plugin> <groupId>com.github.github</groupId> <artifactId>site-maven-plugin</artifactId> <version>0.8</version> <configuration> <message>Maven artifacts for ${project.version}</message> <noJekyll>true</noJekyll> <outputDirectory>${project.build.directory}/mvn-repo</outputDirectory> <branch>refs/heads/mvn-repo</branch> <includes><include>**/*</include></includes> <repositoryName>${project.artifactId}</repositoryName> <repositoryOwner>shinodogg</repositoryOwner> </configuration> <executions> <execution> <goals> <goal>site</goal> </goals> <phase>deploy</phase> </execution> </executions> </plugin> </plugins> </build>
んで、先ほどのMavenのタスク叩くと、以下のようにビルド&デプロイが成功します。
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hoge 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ hoge --- [INFO] Deleting C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget [INFO] ~略~ ------------------------------------------------------- T E S T S ------------------------------------------------------- Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ hoge --- [INFO] Building jar: C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetargethoge-0.0.1-SNAPSHOT.jar [INFO] ~略~ Downloading: file://C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget/mvn-repo/com/shinodogg/hoge/maven-metadata.xml Uploading: file://C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget/mvn-repo/com/shinodogg/hoge/0.0.1-SNAPSHOT/maven-metadata.xml Uploaded: file://C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget/mvn-repo/com/shinodogg/hoge/0.0.1-SNAPSHOT/maven-metadata.xml (767 B at 374.5 KB/sec) Uploading: file://C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget/mvn-repo/com/shinodogg/hoge/maven-metadata.xml Uploaded: file://C:Userseiji.shinoharaDocumentsworkspace-sts-3.2.0.RELEASEhogetarget/mvn-repo/com/shinodogg/hoge/maven-metadata.xml (277 B at 67.6 KB/sec) [INFO] [INFO] --- site-maven-plugin:0.8:site (default) @ hoge --- [INFO] Creating 12 blobs [INFO] Creating tree with 13 blob entries [INFO] Creating commit with SHA-1: d5523a7829b1e5f4e16b68ba15f59a623bd52a45 [INFO] Updating reference refs/heads/mvn-repo from d92d8c319f6b779f83c41d9290984fc28492a696 to d5523a7829b1e5f4e16b68ba15f59a623bd52a45 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.476s [INFO] Finished at: Tue May 14 15:38:32 JST 2013 [INFO] Final Memory: 10M/157M [INFO] ------------------------------------------------------------------------
そうすると↓こんな感じでデプロイされています! #nice
使うときは↓みたいにすればOKらしい。#ちょっと時間切れで今回できず。。
<repository> <id>hoge</id> <url>https://raw.github.com/shinodogg/hoge/mvn-repo/</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository>
—
いやー、コレはテンション上がりますなぁ~。
#ってか日頃から情報収集怠るとイカンですね。。
秀和システム
売り上げランキング: 115,755
コメント