Плагин артефакта rtMavenRun () не использует учетные данные, настроенные в jenkins - PullRequest
0 голосов
/ 18 октября 2019

Это мой конвейер:

stage('Deploy') {
    environment {
        MAVEN_HOME = '/usr/share/maven'
        JAVA_HOME= '/usr/local/openjdk-8'
    }
    steps {
        rtMavenResolver (
                id: 'resolver-unique-id',
                serverId: 'my-server-config',
                releaseRepo: 'my-repo',
                snapshotRepo: 'my-repo'
        )
        rtMavenDeployer (
                id: 'deployer-unique-id',
                serverId: 'my-server-config',
                releaseRepo: 'my-repo',
                snapshotRepo: 'my-repo'
        )
        rtMavenRun (
                pom: 'pom.xml',
                goals: 'help:effective-settings',
                //goals: 'deploy',
                resolverId: 'resolver-unique-id',
                deployerId: 'deployer-unique-id'
        )

        // This works
        rtPublishBuildInfo (
            serverId: 'my-server-config'
        )

У меня настроены кредиты и URL на jenkins (my-server-config). Я знаю, что он настроен правильно, потому что rtPublishBuildInfo () работает и публикуется в артефакте. Пользователь, которым он пользуется, является полным администратором, поэтому никаких проблем с разрешением не должно быть.

Это выполняется в подчиненном контейнере, поэтому мне пришлось вручную настроить среду, чтобы указать местоположения maven и java home, чтобы плагин мог найтиЭто. На нем запущен официальный образ mavenn

Когда я пытаюсь выполнить цель развертывания (подтверждено, что она работает локально с теми же кредитами пользователей), я вижу эту ошибку:

[main] WARNING org.codehaus.plexus.PlexusContainer - Could not transfer metadata com.mycompany.app:my-app:1.0-SNAPSHOT/maven-metadata.xml from/to snapshots (https://my-tenant.jfrog.io/my-tenant/my-repo): Not authorized

Я попытался запустить цель help:effective-settings ипроверил вывод Дженкинса. Похоже, это не использует мои кредиты? Как этот плагин вообще работает с привязкой к кредитам jenkins, которую я установил в конфиге? Как он передает эти кредиты в mvn?

Effective user-specific configuration settings:

<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Generated by Maven Help Plugin on 2019-10-18T19:04:34Z                 -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/                -->
<!--                                                                        -->
<!-- ====================================================================== -->
<!-- ====================================================================== -->
<!--                                                                        -->
<!-- Effective Settings for 'root' on 'mypackagepackage-2zbtg-hsxqv'   -->
<!--                                                                        -->
<!-- ====================================================================== -->
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <localRepository>/root/.m2/repository</localRepository>
  <pluginGroups>
    <pluginGroup>org.apache.maven.plugins</pluginGroup>
    <pluginGroup>org.codehaus.mojo</pluginGroup>
  </pluginGroups>
</settings>

Редактировать: теперь я думаю, что плагин полностью сломан, я попытался явно передать ему файл глобальных настроек с правильными кредитами и его все еще ошибка:

rtMavenRun (
        pom: 'pom.xml',
        //global-settings here is a jenkins secret file with the entire contents of a global settings.xml
        goals: '--settings ${global-settings} deploy',
        resolverId: 'resolver-unique-id',
        deployerId: 'deployer-unique-id'
)

Я вижу эту ошибку:

[main] ERROR org.apache.maven.cli.MavenCli - Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project my-app: Execution default-deploy of goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy failed.: NullPointerException -> [Help 1]

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: ОК, поэтому, хотя это работает локально, я попытался установить обновленную версию плагина развертывания в моем pom:

  <plugin>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.8.2</version>
  </plugin>

И теперь я получаю еще одну ошибку от плагина (это все еще работает локально без проблем):

Caused by: java.io.IOException: Failed to deploy file. Status code: 409 Response message: Artifactory returned the following errors: 
The target deployment path 'com/mycompany/app/my-app/1.0-20191018.195756-35/my-app-1.0-20191018.195756-35.pom' does not match the POM's expected path prefix 'com/mycompany/app/my-app/1.0-SNAPSHOT'. Please verify your POM content for correctness and make sure the source path is a valid Maven repository root path. Status code: 40

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: Продолжая мою эпическую борьбус этим дерьмовым плагином jfrog я отключил проверки непротиворечивости в локальном репозитории, и он может развернуться, но теперь я понимаю эту ошибку. Это превращает мой pom и превращает 1.0-SNAPSHOT в 1.0-20191018.195756-35, почему он это делает и как заставить его не портить мой файл pom?

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ: Я должен быть идиотом, или документация не очень ясна (возможно, оба). Я использовал цель развертывания, потому что ... я хотел развернуть. Но, видимо, вы не делаете этого с плагином - это имеет смысл для меня сейчас. вы clean и install пакета, но оставляете его плагину для его развертывания, чтобы он поместил его в нужное место и прикрепил информацию о сборке. использование install в качестве цели работает

1 Ответ

1 голос
/ 19 октября 2019

Ответ не использовать deploy цель. соберите пакет и плагин позаботится о части развертывания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...