如何将grails 3插件发布到我当地的nexus repo?

时间:2016-01-12 23:54:57

标签: grails grails-plugin grails-3.0

正在运行grails publish-plugin似乎没有做任何事情,我能找到的唯一文件就是发布到bintray。

[编辑:]

我可以通过gradle publish发布插件,但想知道是否有grails-y方式来做,并想知道grails publish-plugin实际上做了什么:/

3 个答案:

答案 0 :(得分:7)

我在Ryan Vanderwerf http://rvanderwerf.blogspot.com/2015/07/how-to-publish-grails-3-plugin.html的帮助下找到了它,他写道,有一堆spring-boot依赖项没有版本,导致gradle吓坏了。要解决它,请删除没有版本的pom中的所有依赖项:

publishing {
    publications {
        mavenJar(MavenPublication) {
            pom.withXml {
                def pomNode = asNode()
                pomNode.dependencyManagement.replaceNode {}

                // simply remove dependencies without a version
                // version-less dependencies are handled with dependencyManagement
                // see https://github.com/spring-gradle-plugins/dependency-management-plugin/issues/8 for more complete solutions
                pomNode.dependencies.dependency.findAll {
                    it.version.text().isEmpty()
                }.each {
                    it.replaceNode {}
                }
            }
            from components.java
        }
    }
    repositories {
        maven {
            credentials {
                username "username"
                password "password"
            }
            url "http://localhost/repo"
        }
    }
}

然后您可以使用grails publish-plugingradle publish发布您的插件

相关SO问题:Grails 3 - How to publish to Artifactory

答案 1 :(得分:0)

在Grails 3.0.11中,我使用gradle目标 publishToMavenLocal 进行本地开发。还有另一个目标 publishMavenPublicationToMavenRepository 。这似乎来自gradle插件:

apply plugin: 'maven-publish'

似乎是标准插件build.gradle。

(编辑:添加使用本地maven的注释)。

重新阅读下面的问题和评论后,我不认为这就是您要找的内容。听起来您希望正常发布到系统上的存储库。 publishMavenPublicationToMavenRepository可以解决这个问题。我上面描述的是使用本地Maven缓存来保存您可以在应用程序中使用的插件的快照。

在开发我的应用程序中使用的插件时,这适用于我。

我没有创建本地存储库。上面的gradle插件(maven-publish)有一个任务publishToMavenLocal,它将Grails插件发布到本地maven缓存以进行本地开发。

它将插件的.zip文件存储在.m2缓存目录中:

C:\Users\xyz\.m2\repository\org\whatever\plugins\pluginName\0.3-SNAPSHOT

然后,您可以在计算机上的Grails应用程序中使用该插件。

答案 2 :(得分:-2)

在BuildConfig.groovy

grails.project.dependency.distribution = {
    remoteRepository(id: '<repo name>',    url: '<url to your nexus repo>')
}

然后:

grails clean

grails编译

grails maven-deploy --repository = repo name