年明け1発目は、去年書き残したIvyのリポジトリ作成の続きです。
とりあえず、今回の環境構築で使ったリポジトリダウンロード用のbuild.xmlを置いてみます。
<?xml version="1.0"?>
<!–
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
–>
<!–
2014/12/01 Changed by @__Black
checkstyle, findbugs用のライブラリをリポジトリに追加するだけの処理に変更
–>
<project name="ivyRepositoryInstall" default="add-repos" xmlns:ivy="antlib:org.apache.ivy.ant">
<property name="repositoryBase" value="c:/ivy-repository"/>
<property name="originalResolver" value="libraries"/>
<property name="installFolder" value="my-repository"/>
<property name="ivy.cache.dir" value="${repositoryBase}/cache" />
<property name="dest.repo.dir" value="${repositoryBase}/myrepository" />
<property name="ivy.jar.dir" value="${repositoryBase}/.ivy2/jars" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<!– =================================
target: load-ivy
this target is not necessary if you put ivy.jar in your ant lib directory
if you already have ivy 1.4 in your ant lib, you can simply remove this
target
================================= –>
<target name="load-ivy">
<path id="ivy.lib.path">
<pathelement location="${ivy.jar.file}"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
<ivy:settings id="settingsFile" file="${repositoryBase}/settings/ivysettings-basic.xml"/>
</target>
<target name="add-repos" depends="load-ivy">
<ivy:install settingsRef="settingsFile"
organisation="com.puppycrawl.tools" module="checkstyle" revision="6.1.1"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="junit" module="junit" revision="4.11"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.hamcrest" module="hamcrest-core" revision="1.3"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="jacoco" revision="0.7.2.201409121644"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="antlr" module="antlr" revision="2.7.7"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.antlr" module="antlr4-runtime" revision="4.3"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="commons-beanutils" module="commons-beanutils-core" revision="1.8.3"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="commons-cli" module="commons-cli" revision="1.2"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="com.google.guava" module="guava" revision="18.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.apache.ant" module="ant" revision="1.7.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.abego.treelayout" module="org.abego.treelayout.core" revision="1.0.1"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.antlr" module="antlr4-annotations" revision="4.3"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.agent" revision="0.7.2.201409121644"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.ant" revision="0.7.2.201409121644"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.report" revision="0.7.2.201409121644"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.core" revision="0.7.2.201409121644"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.agent" revision="0.7.1.201405082137"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.ant" revision="0.7.1.201405082137"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.report" revision="0.7.1.201405082137"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.ow2.asm" module="asm-debug-all" revision="5.0.3"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.jacoco" module="org.jacoco.core" revision="0.7.1.201405082137"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="com.google.code.findbugs" module="findbugs" revision="3.0.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="com.google.code.findbugs" module="bcel-findbugs" revision="6.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="com.google.code.findbugs" module="annotations" revision="3.0.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="com.google.code.findbugs" module="jFormatString" revision="3.0.0"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="dom4j" module="dom4j" revision="1.6.1"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="jaxen" module="jaxen" revision="1.1.6"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="org.ow2.asm" module="asm-debug-all" revision="5.0.2"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="commons-lang" module="commons-lang" revision="2.6"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
<ivy:install settingsRef="settingsFile"
organisation="xml-apis" module="xml-apis" revision="1.0.b2"
from="${originalResolver}" to="${installFolder}" overwrite="true" />
</target>
</project>
※GitHubにも同じファイルを置いています。
このファイルを保存して、「Ant -f build.xml」のような形で実行すると、インターネットからダウンロードしてくれます。
ちなみに、このbuild.xmlの内容を追加したいときには、「ivy:install」タスクをコピペで追加し、必要なライブラリ情報に書き換えるだけです。
「必要なライブラリ情報」をどう指定するかですが、「The Central Repository」という便利なサイトが存在します。
ダウンロードしたいライブラリの情報を検索します。
試しに、"Cobertura"を検索してみます。
過去バージョン/関連ライブラリを含め、リポジトリに登録されているものが表示されます。
(Gradle非公式ですが、Cobertura用Pluginも格納されています)
過去バージョンを選択したいときには、「Latest Version」にある"all"をクリックすると、バージョン一覧が表示されますので、そこから選択できます。
取得したい「Version」をクリックすると、詳細情報が表示されます。
左側にある「Dependency Information」にある"Apache Ivy"をクリックすると、依存関係の情報が表示されます。この内容を元に
organisation="xml-apis" module="xml-apis" revision="1.0.b2"
org="~"→organisation="~"
name="~"→module="~"
rev="~"→revision="~"
としてivy:installタスクに指定すればOKです。
今回のcoberturaであれば、こうなります。
<ivy:install settingsRef="settingsFile"
organisation="cobertura" module="cobertura" revision="1.9rc1
from="${originalResolver}" to="${installFolder}" overwrite="true" />
ちなみにですが、build.gradleの「repositories」に"mavenCentral()"と記載し、Mavenのセントラルリポジトリを使用する場合は、先ほどの「Dependency Information」にある"Gradle/Grails"をクリックしたところに表示される
compile ‘cobertura:cobertura:1.9rc1’
を、build.gradleの「dependencies」に追加するだけです。
Gradleを使ってTFSのビルドを実行させるための環境構築について書いてみました。
今回紹介させていただいた「Gradle for TFS Build Automation」は、Java関連での選択肢として以前のBuild Extentionsよりも幅が広がっているのと、GradleがAnt/Mavenのビルドスクリプトをそのまま使用できることもあり、移行もやりやすいと思います。