Обработка имени файла снимка артефакта - PullRequest
8 голосов
/ 22 марта 2012

В нашей артефакте у нас есть репозиторий снимков, определенный для обработки максимум 5 уникальных снимков. Мы добавили -SNAPSHOT-.extension к имени файла. SNAPSHOT также конвертируется в метку времени. Сборка выполняется с помощью gradle, а артефакт публикуется с бамбуковым и артефактным плагином.

Файл, развернутый на артефакте ...

inhouse-snapshots:com/example/project/subproject/trunk-SNAPSHOT/subproject-trunk-SNAPSHOT-79.amp

становится ...

inhouse-snapshots:com/example/project/subproject/trunk-SNAPSHOT/subproject-trunk-20120321.154621-1-79.amp

Это нормально, и каждая сборка добавляет новый файл с увеличенным номером сборки, но номер временной метки всегда остается 20120321.154621-1, поэтому у нас есть список файлов, например:

  • подпроект-переговорный 20120321.154621-1-79.amp
  • подпроект-переговорный 20120321.154621-1-80.amp
  • подпроект-переговорный 20120321.154621-1-81.amp

У кого-нибудь есть решение или предложение по другому макету каталога?

Ответы [ 2 ]

10 голосов
/ 28 марта 2012

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

Artifactory поддерживает одну и ту же комбинацию метки времени и номера сборки для «пакетов» артефактов и «увеличивает» метку времени и номер сборки при обнаружении новой «партии»; Существует два способа, с помощью которых Artifactory обнаруживает «партии» артефактов с целью преобразования неуникальных снимков в уникальные:

  1. Артефакты развернуты в точном порядке: артефакт (без классификатора), POM, прикрепленные артефакты (с классификаторами); Первый обычный артефакт, который будет развернут после POM, создаст новую «партию»; следовательно, предоставляя новую метку времени и номер строителя.

  2. Артефакты, развернутые с матричным параметром ключа " build.timestamp " и значением временной метки на основе миллисекунд; Артефакты с одинаковыми значениями меток времени будут связаны в одной и той же «партии».

Вы должны либо опустить номер сборки из развернутого файла и развернуть его с параметром матрицы " build.timestamp " (чтобы Artifactory увеличивал "пакет" при каждом новом развертывании), либо разверните файлы уже с уникальным снимком.

0 голосов
/ 15 июля 2016

Я разместил это решение: https://discuss.gradle.org/t/2-8-2-9-mavendeployer-doesnt-honour-uniqueversion-false-in-maven-uploadarchives/13370/8 У меня была проблема с несколькими публикациями в разделе публикаций. Решением для меня было добавить дополнительные артефакты в одну публикацию. Тогда все элементы, api jar, исходный jar, api исходный jar и основной jar, имеют одинаковую метку времени для SNAPSHOT. Кажется, это автоматически решает проблему с build.timestamp.

task apiJar(type: Jar) {
    classifier = 'api'
    from(sourceSets.main.output) {
        include "com/company/app/dto/**"
    }
}

task sourceJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task apiSourceJar(type: Jar, dependsOn: classes) {
    classifier = 'api-sources'
    from(sourceSets.main.allSource) {
        include "com/company/app/dto/**"
    }
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
            pom.withXml {
                asNode().appendNode('description', 'APP Sprint Boot App')
            }
            artifact apiJar
            artifact sourceJar
            artifact apiSourceJar
        }
    }
    repositories {
        maven {
            credentials {
                username = 'username'
                password = 'password'
            }
            if(project.version.endsWith('-SNAPSHOT')) {
                url "http://server:9081/artifactory/libs-snapshot-local"
            } else {
                url "http://server:9081/artifactory/libs-release-local"
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...