Справочная информация: Я пытаюсь перенести проекты, чтобы использовать наш новый обновленный экземпляр 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>
Посоветуйте, пожалуйста, какие идеи о том, что я мог бы найти, вызывает проблему.