Processingベースで作って使っているVJソフト、PDEでがんばって作ってたけどそろそろファイルが増えすぎて普通のIDE上で作り直したいな、と思っていて。
こういう場合はPDEにバンドルされているcore.jarを抽出して扱うのが普通らしいんだけど、いまいちスマートなやり方じゃない。Mavenとかがつかえるならそっちの方が良いよね、というのはみんな考える。
ただ、残念ながらProcessing公式のMavenリポジトリーは無いので、いかに自前のリポジトリーを作るか、というところに主眼が置かれる。
Mavenリポジトリーはjarファイルとpomとチェックサムさえ静的に置ければどんなWebサーバーでも作れるので、最近はGitHubのリポジトリーで私的なリポジトリーを作っちゃう手法が普及してきている。
Processingの開発もGitHubに移行しているので、GitHubを中心にして一通り作ってみた。
- Processing公式リポジトリーをforkする。
公式リポジトリーは次のURL。
https://github.com/processing/processing
- ターゲットとするバージョンのタグでチェックアウトする。
2015年2月2日現在では、最新の安定バージョンは2.2.1。
3.0a5もあるけど、過去の経緯からするとだいたいaとかbとかつくバージョンは常用するには問題が多い。
- ブランチ「gh-pages」を作る。
GitHub Pagesが有効になる。
これで、core.jarを静的に配信する基盤ができる。
- リポジトリーの 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"><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">
<modelVersion>4.0.0</modelVersion>
<groupId>processing</groupId>
<artifactId>core</artifactId>
<version>${processing.version}</version>
<packaging>jar</packaging>
<name>core</name>
<url>https://github.com/processing/processing</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project></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>
書き出したファイルをGitHubにpushする。
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>
コメント