GradleとMavenの使用方法

【目次】

Gradleの使用方法

Gradleは元々Hans Dockterのプラグインベースのビルドシステムで、MavenとAntの良いとこ取りのシステムです。
プロジェクトでGradleをビルドに使用している場合は、build.gradleファイルに次のスニペットを追加して、bitcoinjに依存することができます。

dependencies {
compile 'org.bitcoinj:bitcoinj-core:0.14.5'
}

Mavenの使用方法

MavenApacheプラグインベースのビルドシステムです。 プロジェクトのWebサイトを自動的に作成し、依存関係を解決するなど、さまざまな機能をサポートしています。もしプロジェクトにおいてビルドにMavenを使用するなら、次のスニペットをpom.xmlファイルに追加することで、bitcoinjに依存することができます。

  <dependencies>
    <dependency>
      <groupId>org.bitcoinj</groupId>
      <artifactId>bitcoinj-core</artifactId>
      <version>0.14.5</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

以下の方法でもソースをgitからチェックアウトし入手出来ます(上記の方法で依存関係が成立してれば、この方法を使う必要はありません)。

git clone https://github.com/bitcoinj/bitcoinj.git
cd bitcoinj
git fetch --all
git checkout -b v0.14.5
mvn install

これでv0.14.5が得られます。

※注意:OpenJDKを使用している場合は、OSの配布用に、サポートされているOpenJFXパッケージをインストールする必要があります。 たとえば、Ubuntu 15.10を実行していて"openjdk-8-jdk"を使用している場合は、"openjfx"パッケージもインストールする必要があります。 これは"sudo apt-get install openjfx"コマンドで行うことができます。

Mavenのセキュリティー

Maven Centralは、安全が確保されたインフラではありません。気にしなければ、それは大した問題ではありません。しかしプロトタイプを本番のアプリに移行するには、セキュリティーの構築は重要になります。以下のヒントに基づいてMavenをより安全にする事が出来ます。

  1. Maven 3.2.3以降を使用します。 Maven Centralは2014年9月以降SSLをサポートしていますが、以前のバージョンはSSLをサポートしていませんでした。 依存関係のダウンロードは、ローカルネットワーク上の誰もが簡単にバックドアップすることができ、実際にこれを簡単に行う事が出来ます。 ですので、デフォルトでSSLを使用しているMavenを使用することが必須です。 ApacheウェブサイトからMavenをダウンロードして下さい。
  2. LinuxディストリビューションからMavenを使用しないでください。 Linuxディストリビューターは、さまざまな方法でMavenを改ざんして問題を引き起こす可能性があるので、apt-getを使用する代わりにアップストリームのバージョン(公式サイトで配布されてるバージョン)を入手してください。
  3. 依存の検証を行います。 Maven Centralは便利ですが、パスワード認証よりも安全なものは実装していません。 つまり、開発者アカウントがハッキングされた場合には、偽のJARがアップロードされることがあると言うことです。 bitcoinjにはPOM(Project Object Mode)にハードコードされた依存関係のリストがあり、同じMavenプラグインを使用して独自の依存関係のハッシュを修正することができます:

正しいバージョンであるか確認するには、次のコマンドを実行します。

$ shasum ~/.m2/repository/uk/co/froot/maven/enforcer/digest-enforcer-rules/0.0.1/digest-enforcer-rules-0.0.1.jar
16a9e04f3fe4bb143c42782d07d5faf65b32106f

出力が一致していることを確認します。