Как мне опубликовать плагин Grails 3 для моего локального репозитория Nexus?
Бег grails publish-plugin
похоже, ничего не делает, и единственная документация, которую я смог найти, касалась публикации в bintray.
[редактировать:]
Я могу опубликовать плагин через gradle publish
, но задавался вопросом, есть ли способ Grails-Y, чтобы сделать это, и интересно, что grails publish-plugin
на самом деле делает:/
3 ответа
Я выяснил это с помощью Ryan V адресу http://rvanderwerf.blogspot.com/2015/07/how-to-publish-grails-3-plugin.html который пишет, что существует множество зависимостей при весенней загрузке, которые не имеют версий в них, и это приводит к тому, что 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
опубликовать свой плагин
связанный с этим вопрос: Grails 3 - Как опубликовать в Artifactory
В 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 на вашем компьютере.
В BuildConfig.groovy
grails.project.dependency.distribution = {
remoteRepository(id: '<repo name>', url: '<url to your nexus repo>')
}
Затем:
Чистый Грааль
Grails компилировать
Grails Maven-deploy --repository= имя репозитория