Выпуск Grails необъяснимым образом не в состоянии опубликовать в Nexus - PullRequest
0 голосов
/ 02 апреля 2019

Справочная информация: Я пытаюсь перенести проекты, чтобы использовать наш новый обновленный экземпляр Nexus вместо старого. Проекты Gradle и Maven прошли гладко, но не так с проектами Grails.

Проблема: Выпуски и только выпуски не могут быть опубликованы на новом нексусе. Публикация снимков работает просто отлично. И старые снимки, и публикация выпусков работали хорошо в старом нексусе, и проекты Maven и Gradle, которые я перенес, использующие те же учетные данные пользователя, также прекрасно работают.

Ошибка выглядит следующим образом

Сгенерировано POM: /var/atlassian/application-data/bamboo/xml-data/build-dir/CS-AREL-JOB1/target/pom.xml.

[развернуть] Развертывание на https://nexus.mydomain.com/repository/maven-releases/

[развернуть] Загрузка: com / mydomain / myproject-admin / 1.11.9 / myproject-admin-1.11.9.war в репозиторий atlassian_nexus_releases по адресу https://nexus.mydomain.com/repository/maven-releases/

[развернуть] Передача 44484K из atlassian_nexus_releases

[deploy] Ошибка записи на сервер

[deploy] Произошла ошибка при обработке задач артефакта Maven.

[развернуть] Диагноз:

[развернуть]

[deploy] Ошибка развертывания артефакта 'com.mydomain: myproject-admin: war': Ошибка развертывания артефакта: Ошибка передачи файла

[deploy] Ошибка записи на сервер

Что мне нужно, так это некоторые идеи о том, где искать, потому что все общие проверки, похоже, не являются проблемой. Учетные данные пользователя верны и работают для проектов gradle и maven. URL-адрес правильный и работает для проектов gradle и maven. Сборка не изменилась между старым и новым использованием нексуса, поэтому я предполагаю, что сборка по-прежнему корректно генерирует артефакты выпуска, а не артефакты моментальных снимков. В чем еще может быть проблема?

Конфигурация:

grails.settings.groovy

grails.project.dependency.authentication = {
    repositories {
        mavenRepo "https://nexus.mydomain.com/repository/maven-public/"
    }
    credentials {
        id = "atlassian_nexus"
        username = "dev_read_user"
        password = "****"
    }
}
grails.project.ivy.authentication = {
    repositories {
        mavenRepo "https://nexus.mydomain.com/repository/maven-public/"
    }
    credentials {
        realm = "Sonatype Nexus Repository Manager"
        host = "atlassian.mydomain.com"
        username = "dev_read_user"
        password = "****"
    }
}
grails.project.dependency.distribution = {
    localRepository = "~/.m2/"
    remoteRepository(id: "atlassian_nexus_snapshots", url: 'https://nexus.mydomain.com/repository/maven-snapshots/'){
        authentication(username: 'nexus_user', password: '****')
    }
    remoteRepository(id: "atlassian_nexus_releases", url: 'https://nexus.mydomain.com/repository/maven-releases/'){
        authentication(username: 'nexus_user', password: '****')
    }
}

В приведенном выше файле больше всего изменений произошло во время миграции, поэтому я считаю, что он является наиболее вероятным виновником, хотя также может быть возможно, что некоторые конфигурации самой Nexus могут быть проблемой?

bamboo-build-release.sh

echo 'Making and commiting release version...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw version-update x.x.x --non-interactive;
git commit -m 'Increment version to release' -- application.properties;

echo 'Creating and pushing tag...';
grep app.version application.properties | cut -d"=" -f2 | xargs -I 
version git tag -a version -m "Tag Release";
git push $GIT_URL --tags;

echo 'Building RELEASE war and publishing to Nexus...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw prod maven-deploy --repository=atlassian_nexus_releases -- non-interactive -verbose;

echo 'Incrementing to next snapshot...';
JAVA_HOME=$bamboo_jdk_1_8 \
./grailsw version-update p s --non-interactive;

echo 'Committing and pushing version changes...';
git commit -m 'Increment version to next snapshot' --application.properties;
git push $GIT_URL $GIT_BRANCH;

echo 'Completed bamboo-build-release.sh';

Единственное, что я изменил в приведенном выше файле компоновки, - это добавил '-verbose', чтобы я мог получить немного больше информации о том, почему он не работает. Как видно из приведенного выше, он не дал более подробной информации о том, почему публикация не удалась.

Я убедился, что для сгенерированного pom указана правильная версия без снимка:

<?xml version='1.0' encoding='UTF-8'?>
<project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mydomain</groupId>
  <artifactId>myproject-admin</artifactId>
  <packaging>war</packaging>
  <version>1.11.9</version>
  <name>myproject-admin</name>
</project>

Посоветуйте, пожалуйста, какие идеи о том, что я мог бы найти, вызывает проблему.

...