长久以来,管理Grails中的依赖关系仅仅是将相互依赖的jar放到Grails应用的lib目录中。但是在Grails1.2之后出现的依赖DSL可以允许开发者声明依赖关系,并且Grials可以自动的下载依赖并使这些依赖为你的应用服务。Grails1.3之后,已经可以将依赖DSL应用到插件领域。Peter Ledbrook在博文中,介绍如何使用Artifactory管理你的插件。
关于插件总是会面临两个问题:
- 建立一个合适的Subversion服务器作为Grails插件的存储库,并不是件容易的事情。如果使用Nexus或者Artifactory来进行管理是不是更好些?
- 无法控制插件给你的应用程序带来的依赖关系。有的插件包含的lib可能并不是必须的,这些lib甚至会影响这个应用的运行。使用以来DSL就能有效地排除这些无关的lib。
如下是Peter Ledbrook以Artifactory为例,介绍管理插件的步骤:
- 这里下载Artifactory,安装;
- 登陆Artifatory页面(URL:http://localhost:8081/artifactory,用户名:admin,密码:password),在Deploy页面,将合适的jar文件上传;
- 为上传的jar文件选择Target Repository;
- 在Grails中配置存储库和依赖关系:修改grails-app/conf/BuildConfig.groovy文件,示例代码如下:
- 运行grails run-app,就能够看到关于依赖和插件的相关信息输出,如果不需要输出相关信息,可以将上一步代码中log "warn"删除。
grails.project.dependency.resolution = {
...
log "warn"
repositories {
grailsPlugins()
grailsHome()
mavenRepo "http://localhost:8081/artifactory/libs-releases-local/"
mavenRepo "http://localhost:8081/artifactory/plugins-releases-local/"
grailsCentral()
}
plugins {
build "org.grails.plugins:db-util:0.4"
}
dependencies {
compile "commons-digester:commons-digester:2.0"
}
}
上述代码中,在repositories部分为每一个存储库添加一个mavenRepo条目。新增的DSL就是plugins和dependencies部分的内容。关于DSL的语法,请参见本站的Grails 1.2参考文档速读(4)。
采用Peter Ledbrook的方法,对依赖以及插件的管理就清晰容易了许多。另外,还可以通过Maven Publisher插件将你开发的插件程序发布到MAVEN兼容的存储库中,步骤如下:
- 在插件工程的BuildConfig.groovy中添加如下代码:
- 运行:grails maven-deploy --repository=pluginSnapshots
grails.project.dependency.distribution = {
remoteRepository(id: "pluginSnapshots", url: "http://localhost:8081/artifactory/plugins-snapshots-local/") {
authentication username: "admin", password: "password"
}
}
关于本文更多详细内容,请参见原文。

最新评论
9 周 6 小时之前
9 周 1 天之前
11 周 5 天之前
11 周 5 天之前
17 周 2 天之前
17 周 4 天之前
19 周 3 天之前
20 周 1 天之前
20 周 2 天之前
20 周 5 天之前