Skip to content

Maven

Репозиторий maven используется для работы с хранящимся в нём артефактами Java-проектов.

В главном документе pom.xml добавьте свой UID-адрес в начало тега <grouId>:

 <groupId>UID.com.company</groupId>
 <artifactId>project</artifactId>
 <version>1.0</version>

В главном pom.xml добавьте ссылки на snapshots и releases репозитории:

<project>
...
<distributionManagement>
    <repository>
        <id>artifactory</id>
        <name>Releases</name>
        <url>https://artifactory.$LOC.icdc.io/repository/maven-releases</url>
    </repository>
    <snapshotRepository>
        <id>artifactory</id>
        <name>Snapshot</name>
        <url>https://artifactory.$LOC.icdc.io/repository/maven-snapshots</url>
    </snapshotRepository>
</distributionManagement>
...

В settings.xml вставьте свои данные, для доступа к репозиторию:

<settings>
...
<servers>
    <server>
        <id>artifactory</id>
        <username>mail</username>
        <password>password</password>
    </server>
</servers>

После этого вы можете выполнить:

$ mvn deploy

Gradle

Система автоматической сборки Gradle может работать с maven репозиториями Artifactory. Минимальная конфигурация build.gradle для загрузки сборки в репозиторий:

apply plugin: 'java'
apply plugin: 'maven'
group = 'UID.org.company.project'
version = '1.0.0-SNAPSHOT'
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "https://artifactory.$LOC.icdc.io/repository/maven-releases") {
                authentication(userName: "mail", password: "password")
            }
            snapshotRepository(url: "https://artifactory.$LOC.icdc.io/repository/maven-snapshots") {
                authentication(userName: "mail", password: "password")
            }
        }
    }
}

После того как конфигурация будет настроена, введите:

$ gradle upload

Пример команды Artifactory Maven

  • Создайте новую команду в ICDC Artifactory

  • Сконфигурируйте pom.xml файл:

    • вставьте название недавно созданной команды в тег в следующем формате
    <groupId>[USED-NAME]-team.[GROUPID-PATH]</groupId>
    
    • добавьте раздел distributionManagement на 2-м уровне XML (точный URL-адрес службы зависит от желаемой локации)
    <distributionManagement>
      <repository>
        <id>artifactory</id>
        <name>Releases</name>
        <url>https://[SERVICE-BASE-URL]/repository/maven-releases</url>
      </repository>
      <snapshotRepository>
        <id>artifactory</id>
        <name>Snapshot</name>
        <url>https://[SERVICE-BASE-URL]/repository/maven-snapshots</url>
      </snapshotRepository>
    </distributionManagement>
    

  • Сконфигурируйте свой settings.xml файл:

    • добавьте блок в секцию (создайте секцию, если не существует)
    <servers>
      <server>
        <id>artifactory</id>
        <username>[SERVICE-USERNAME]</username>
        <password>[SERVICE-PASSWORD]</password>
      </server>
    </servers>
    

  • Загрузите артефакты в сервис (способ загрузки зависит от используемых инструментов)

Управление доступом на основе пространства имен

В ICDC Artifactory существует простой принцип управления доступом, основанный на пространствах имен.
Когда вы создаете команду, пространство имен с тем же именем + «-team» доступно вам в указанном репозитории (например, в репозиториях Maven). Когда вы указываете путь в \, вы пытаетесь разместить артефакт на этом пути.

Example

Название команды: simple-maven-test-project

Доступное пространство имен:
maven-snapshots

├─ simple-maven-test-project-team
│  ├── com
│  │ └── company
│  │ └── ...
│ ├── org
│  │ └── ...
├─ [OTHER-TEAM-NAMESPACE]
│  └── ...
├─ [OTHER-PERSONAL-NAMESPACE]
│  └── ...
...