Grails - 未安装 SCM 提供程序

Posted

技术标签:

【中文标题】Grails - 未安装 SCM 提供程序【英文标题】:Grails - No SCM provider installed 【发布时间】:2015-01-15 10:34:41 【问题描述】:

我需要将我的插件部署到 Nexus 存储库并在我的 SCM(Subversion)中创建标签。 在BuildConfig.groovy 我写了build ":release:3.0.1" 插件部分 并设置了存储库:

grails.project.repos.releases.url="http://my-nexus:8081/content/repositories/releases" grails.project.repos.releases.username="deployment" grails.project.repos.releases.password="deployment123"

当我启动grails publish-plugin --repository=releasescommand 时,我得到WARN: No SCM provider installed.

如果我修复了这个警告,它会在 Subversion 上创建一个标签吗? 请问我该如何解决这个警告?

【问题讨论】:

【参考方案1】:

这是一个可以忽略的警告。在我们从 http://svn.codehaus.org/grails-plugins/ 发布插件和源代码切换到期望开发人员将维护自己的源代码(许多人已经在这样做)并在 http://repo.grails.org/grails/webapp/home.html?0 向 Artifactory 服务器发布插件后,Subversion 支持已从插件中删除。

当前的“标准”发布过程不会创建任何标签;相反,它为当前版本创建一个新的子文件夹,并在那里部署插件 zip、plugin.xml 和 Maven POM 文件,例如http://repo.grails.org/grails/simple/plugins-releases-local/org/grails/plugins/acegi/0.5.3.2/

如果您想标记您的源代码,您可以查看插件的 Git 历史记录(源代码是 here),以了解它以前是如何在 Groovy/Java 中以编程方式执行此操作的,或者将其作为脚本的一部分并执行运行发布脚本后从命令行中。

【讨论】:

【参考方案2】:

如果您在 BuildConfig 中包含必要的依赖项,SVN 标记实际上仍然可以在 2.4.4 中使用。我没有意识到它是故意删除的。事实上,在迁移到 Git 之后,我实际上是希望让这个工作正常进行,这让我来到了这里。我可能会求助于让构建服务器为 Git 做标记,但这里是如何让它为 SVN 工作:

   repositories 
        //Required for SVN dependencies
        mavenRepo "http://maven.tmatesoft.com/content/repositories/releases/"
    
    dependencies 
        build("org.tmatesoft.svnkit:svnkit:1.8.6") 
            //excludes "jna", "trilead-ssh2", "sqljet"
            export = false
        
    
    plugins 
        build (":release:3.0.1") 
            export = false
        
        build (":svn:1.0.2") 
            export = false
        
    

【讨论】:

顺便说一句,这仅在您的插件在 SVN 中结构化并且其内容直接在主干中时才有效。所以结构应该看起来像svn/repo/trunk/grails-app,svn/repo/trunk/MyGrailsPlugin.groovy等。如果它在trunk的子目录中,它将不起作用。

以上是关于Grails - 未安装 SCM 提供程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用hibernate grails 3,mysql?

在 Grails 中存储和编辑键/值对?

未安装 Grails Url 缩短插件

关于grails连接数据库

GORM数据服务VS Grails服务

Grails 中的自定义验证器中的异常