如何将 grails 3 插件发布到我的本地 nexus 存储库?
How do I publish a grails 3 plugin to my local nexus repo?
运行 grails publish-plugin
似乎什么也没做,我能找到的唯一文档是关于发布到 bintray 的。
[编辑:]
我可以通过 gradle publish
发布该插件,但想知道是否有 grails-y 方法可以做到这一点,并且想知道 grails publish-plugin
实际上做了什么:/
在 grails 中 2.x
BuildConfig.groovy
grails.project.dependency.distribution = {
remoteRepository(id: '<repo name>', url: '<url to your nexus repo>')
}
Then:
grails clean
grails compile
grails maven-deploy --repository=repo name
在 grails 中 3.x+:
buildscript {
repositories {
mavenLocal()
...
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
}
}
publishing {
repositories {
maven {
credentials {
username "xyz"
password "xyz"
}
url "http://example.com/nexus/content/repositories/nfb"
}
}
}
最后
gradle 发布
在 Grails 3.0.11 中,我使用 gradle 目标 publishToMavenLocal 进行本地开发。还有另一个目标 publishMavenPublicationToMavenRepository。这似乎来自 gradle 插件:
apply plugin: 'maven-publish'
似乎在标准插件中 build.gradle。
(编辑:添加关于使用本地 maven 的注释)。
在 re-reading 你的问题和下面的评论之后,我认为这不是你要找的。听起来您想正常发布到系统上的存储库。 publishMavenPublicationToMavenRepository
可以处理。我上面描述的是使用本地 Maven 缓存来保存插件的快照,您可以在您的机器上的应用程序中使用它。
在开发我的应用程序中使用的插件时,这对我有用。
我没有创建本地存储库。上面的gradle插件(maven-publish
)有一个任务publishToMavenLocal
会把Grails插件发布到本地maven缓存中进行本地开发
它将插件的 .zip 文件存储在 .m2 缓存目录中:
C:\Users\xyz\.m2\repository\org\whatever\plugins\pluginName[=11=].3-SNAPSHOT
然后,您可以在计算机上的 Grails 应用程序中使用该插件。
我在 Ryan Vanderwerf at 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-plugin
或 gradle publish
发布您的插件
相关的 SO 问题:Grails 3 - How to publish to Artifactory
运行 grails publish-plugin
似乎什么也没做,我能找到的唯一文档是关于发布到 bintray 的。
[编辑:]
我可以通过 gradle publish
发布该插件,但想知道是否有 grails-y 方法可以做到这一点,并且想知道 grails publish-plugin
实际上做了什么:/
在 grails 中 2.x BuildConfig.groovy
grails.project.dependency.distribution = {
remoteRepository(id: '<repo name>', url: '<url to your nexus repo>')
}
Then:
grails clean
grails compile
grails maven-deploy --repository=repo name
在 grails 中 3.x+:
buildscript {
repositories {
mavenLocal()
...
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
}
}
publishing {
repositories {
maven {
credentials {
username "xyz"
password "xyz"
}
url "http://example.com/nexus/content/repositories/nfb"
}
}
}
最后
gradle 发布
在 Grails 3.0.11 中,我使用 gradle 目标 publishToMavenLocal 进行本地开发。还有另一个目标 publishMavenPublicationToMavenRepository。这似乎来自 gradle 插件:
apply plugin: 'maven-publish'
似乎在标准插件中 build.gradle。
(编辑:添加关于使用本地 maven 的注释)。
在 re-reading 你的问题和下面的评论之后,我认为这不是你要找的。听起来您想正常发布到系统上的存储库。 publishMavenPublicationToMavenRepository
可以处理。我上面描述的是使用本地 Maven 缓存来保存插件的快照,您可以在您的机器上的应用程序中使用它。
在开发我的应用程序中使用的插件时,这对我有用。
我没有创建本地存储库。上面的gradle插件(maven-publish
)有一个任务publishToMavenLocal
会把Grails插件发布到本地maven缓存中进行本地开发
它将插件的 .zip 文件存储在 .m2 缓存目录中:
C:\Users\xyz\.m2\repository\org\whatever\plugins\pluginName[=11=].3-SNAPSHOT
然后,您可以在计算机上的 Grails 应用程序中使用该插件。
我在 Ryan Vanderwerf at 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-plugin
或 gradle publish
发布您的插件
相关的 SO 问题:Grails 3 - How to publish to Artifactory