Grails3プロファイル: Mavenリポジトリ設定と参照の補足
Grails3 アプリケーションプロファイル(意訳版)でわかりにくかったリポジトリ指定部分の補足。
.grails/settings.groovyへの設定
独自のリポジトリを追加する場合ドキュメントに従うと、Grailsセントラルが見えなくなりエラーが出る場合があります。その場合は、repositoriesにGrailsセントラルリポジトリを追加で対応できます。
~/.grails/settings.groovy
、profiles.repositoriesの内容を以下のように:
grails {
profiles {
repositories {
myRepo {
url = "http://repo.my-company.jp/snapshots"
snapshotsEnabled = true
}
grailsCentral {
url = "http://repo.grails.org/grails/core"
snapshotsEnabled = true
}
}
}
}
上記grailsCentral{}
の部分が無いと以下のエラーがでます:
% grails create-app myapp --profile org.grails.profiles:myprofile:1.0.0-SNAPSHOT
| Error Error occurred running Grails CLI: Could not find artifact org.grails.profiles:web:jar:3.1.6 in myRepo
.m2/settings.xmlへの設定
認証はドキュメントにもあるとおりAetherを使用しているので、~/.m2/settings.xml
にusernameとpasswordを設定します。プロキシ等も必要な場合も設定:
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<username>taro</username>
<password>secret</password>
<id>myRepo</id>
</server>
</settings>
プロファイルの指定方法
単純に名称指定のみの場合は実行しているGrailsのバージョンと同じ物を探しに行くのでプロファイルのバージョンが違う場合はフルで依存ライブラリ指定する必要があります:
名称指定の場合以下のようにエラーがでます:
# grails create-app myapp --profile myprofile
| Error Error occurred running Grails CLI: Could not find artifact org.grails.profiles:myprofile:jar:3.1.6
フルで依存ライブラリ指定:
grails create-app myapp --profile org.grails.profiles:myprofile:1.0.0-SNAPSHOT