我有一些不公开的第三方插件。我想创建一个本地存储库,以便我和我的同事可以轻松安装这些插件。我有一台已经安装了 nginx 的服务器。因此,如果可能的话,我想使用它。也就是说,我并不热衷于安装另一个像 Tomcat 这样的 Web 服务器来运行像 grails.org Web 界面这样的东西(正如“您自己的插件门户”中的文档所建议的那样)。
基于grailsRepo()函数和getPluginList(),我在我的 Web 服务器上创建了一个“grails”目录,如下所示:
/grails
- /.plugin-meta
- /plugins-list.xml
- /grails-my-plugin
- /tags
- /RELEASE_1_0_123
- /grails-my-plugin-1.0.123.zip
其中插件名为“my-plugin”,插件版本号为 1.0.123。
我的 plugins-list.xml 是这样的:
<plugins revision="1">
<plugin latest-release="1.0.123" name="my-plugin">
<release tag="RELEASE_1_0_123" type="svn" version="1.0.123">
<title>MyPlugin</title>
<author>No Author</author>
<authoremail>no@email</authoremail>
<description>An example plugin.</description>
<file>http://mydev.example.com/grails/grails-my-plugin/tags/RELEASE_1_0_123/grails-my-plugin-1.0.123.zip</file>
</release>
</plugin>
</plugins>
将存储库配置为详细信息后,我创建了一个新的 Grails 应用程序 ( grails create-app test-app
) 并对其进行了调整grails-app/conf/BuildConfig.groovy
以包含以下配置:
repositories {
grailsRepo("http://mydev.example.com/grails", "myDevRepo")
}
每当我尝试将“my-plugin”插件安装到这个 Grails 应用程序时,我都会在我的 Web 服务器上看到一个请求,并且 Grails 报告它试图从我的存储库中下载,如下所示:
==== myDevRepo: tried
-- artifact org.grails.plugins#my-plugin;latest.integration!my-plugin.zip:
http://mydev.example.com/grails/grails-my-plugin/tags/LATEST_RELEASE/grails-my-plugin-[revision].zip
在我看来,Grails 并没有尝试读取.plugin-meta/plugins-list.xml
我为存储库创建的文件。我需要做什么才能使这个存储库在本地 Grails 应用程序的最低配置下工作?
注意:我使用的是 Grails 1.3.7。