Processing core の Maven リポジトリーを GitHub Pages で作る

2015年2月2日

Processingベースで作って使っているVJソフト、PDEでがんばって作ってたけどそろそろファイルが増えすぎて普通のIDE上で作り直したいな、と思っていて
こういう場合はPDEにバンドルされているcore.jarを抽出して扱うのが普通らしいんだけど、いまいちスマートなやり方じゃない。Mavenとかがつかえるならそっちの方が良いよね、というのはみんな考える。
ただ、残念ながらProcessing公式のMavenリポジトリーは無いので、いかに自前のリポジトリーを作るか、というところに主眼が置かれる。

Mavenリポジトリーはjarファイルとpomとチェックサムさえ静的に置ければどんなWebサーバーでも作れるので、最近はGitHubのリポジトリーで私的なリポジトリーを作っちゃう手法が普及してきている。
Processingの開発もGitHubに移行しているので、GitHubを中心にして一通り作ってみた。

1. Processing公式リポジトリーをforkする。

公式リポジトリーは次のURL。
https://github.com/processing/processing

2. ターゲットとするバージョンのタグでチェックアウトする。

2015年2月2日現在では、最新の安定バージョンは2.2.1
3.0a5もあるけど、過去の経緯からするとだいたいaとかbとかつくバージョンは常用するには問題が多い。

3. ブランチ「gh-pages」を作る。

GitHub Pagesが有効になる。
これで、core.jarを静的に配信する基盤ができる。

4. リポジトリーの build/build.xml にMavenリポジトリー用のファイルを書き出す設定を加える。

例えば、こんな感じで<target>要素を追加すると、buildタスクの延長でMavenリポジトリー構造が作れて楽。
ant runで生成されたcore.jarをMavenの公開領域にコピーして、pomとチェックサムも生成している。
https://github.com/hiroshitoda/processing/blob/gh-pages/build/build.xml

<target name="mvn-repo" description="Perform maven repository structure.">  
  <property name="processing.version" value="2.2.1" />  
  <delete dir="../maven" />  
  <mkdir dir="../maven" />  
  <mkdir dir="../maven/processing" />  
  <mkdir dir="../maven/processing/core" />  
  <mkdir dir="../maven/processing/core/${processing.version}" />  
  <copy file="../core/library/core.jar" tofile="../maven/processing/core/${processing.version}/core-${processing.version}.jar"/>  
  <checksum file="../maven/processing/core/${processing.version}/core-${processing.version}.jar" todir="../maven/processing/core/${processing.version}" algorithm="MD5" fileext=".md5"/>  
  <checksum file="../maven/processing/core/${processing.version}/core-${processing.version}.jar" todir="../maven/processing/core/${processing.version}" algorithm="SHA-1" fileext=".sha1"/>  
  <echo file="../maven/processing/core/${processing.version}/core-${processing.version}.pom" encoding="UTF-8">&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"&gt;  
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;  
  &lt;groupId&gt;processing&lt;/groupId&gt;  
  &lt;artifactId&gt;core&lt;/artifactId&gt;  
  &lt;version&gt;${processing.version}&lt;/version&gt;  
  &lt;packaging&gt;jar&lt;/packaging&gt;  
  &lt;name&gt;core&lt;/name&gt;  
  &lt;url&gt;https://github.com/processing/processing&lt;/url&gt;  
  &lt;properties&gt;  
  &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;  
  &lt;/properties&gt;  
  &lt;/project&gt;</echo>  
  <checksum file="../maven/processing/core/${processing.version}/core-${processing.version}.pom" todir="../maven/processing/core/${processing.version}" algorithm="MD5" fileext=".md5"/>  
  <checksum file="../maven/processing/core/${processing.version}/core-${processing.version}.pom" todir="../maven/processing/core/${processing.version}" algorithm="SHA-1" fileext=".sha1"/>  
</target>

5. 書き出したファイルをGitHubにpushする。

6. Mavenプロジェクトのpom.xmlにリポジトリー設定を追加して依存性解決できればOK。

GitHub PagesのリポジトリーURLは、Mavenリポジトリーのルートパスを設定すれば良い。たとえば、次のような感じ。

<repositories>
  <repository>
    <id>GitHub processing (hiroshitoda)</id>
    <url>http://hiroshitoda.github.io/processing/maven/</url>
  </repository>
</repositories>

宣伝


保護犬ふうちゃんとわたしたち
嫁が2016年からESSEonlineで連載しているマンガが電子書籍として販売されています。


MagicPod
ディープラーニングによる画面UI解析とAppiumを組み合わせた自動テストSaaSです。2016年頃からサービス運営・開発に関わっています。


エキスパートが教えるSelenium最前線
共著です。応用編です。


Selenium実践入門―自動化による継続的なブラウザテスト
共著です。第3刷が出ました。