2016-09-19 5 views
3

Here образец конфигурации artifactory-maven-plugin:Как использовать имя пользователя и пароль в artifactory-maven-plugin из settings.xml?

<build> 
    <plugins> 
     ... 
     <plugin> 
      <groupId>org.jfrog.buildinfo</groupId> 
      <artifactId>artifactory-maven-plugin</artifactId> 
      <version>2.6.1</version> 
      <inherited>false</inherited> 
      <executions> 
       <execution> 
        <id>build-info</id> 
        <goals> 
         <goal>publish</goal> 
        </goals> 
        <configuration> 
         <deployProperties> 
          <gradle>awesome</gradle> 
          <review.team>qa</review.team> 
         </deployProperties> 
         <publisher> 
          <contextUrl>https://oss.jfrog.org</contextUrl> 
          <username>deployer</username> 
          <password>{DESede}...</password> 
          <repoKey>libs-release-local</repoKey> 
          <snapshotRepoKey>libs-snapshot-local</snapshotRepoKey> 
         </publisher> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

В этом случае я должен вручную настроить contextUrl, userName и password. В то время как стандартный Maven развернуть плагин использует такие параметры из setting.xml (как это):

<servers> 
    <server> 
    <username>username</username> 
    <id>server-id</id> 
    <password>pass</password> 
    </server> 
</servers> 

Почему jfrom не использовать имя, URL, ... и т.д. от setting.xml? Есть ли способ указать только идентификатор сервера без пароля и имени пользователя?

Конечно, кто-то может определить свойства в настройках xml и использовать их в определении плагина, но в этом случае эти свойства могут быть легко доступны для всех проектов и выведены кем-либо для консолирования во время сторонних сборок.

<properties> 
    <username></username> 
</properties> 

ответ

0

official documentation фактически предлагает другой подход:

Поддержание вашей Artifactory издателя учетные безопасные
Если вы предпочитаете хранить свои Artifactory издателя учетные данные (username и password) безопасный (а не предоставление их как бесплатный текст в конфигурации плагина), мы рекомендуем хранить их как переменные среды или системные свойства и плагин читает их, когда это необходимо. Поскольку обычное развертывание Maven не поддерживает переменные среды или системные свойства в settings.xml, эта возможность уникальна для Maven Artifactory Plugin.

Следовательно, в самом деле ожидаемая функциональность со ссылкой на идентификатор сервера, определенного в settings.xml является не реализована.


Одна заметка: для обеспечения надлежащей практики, развертывание в виде Maven Repository должна быть выполнены в автоматизированном способе с помощью непрерывной интеграции сервера (т.е. Jenkins). В этом случае плагин Artifactory для CI-сервера (то есть Artifactory Jenkins Plugin) будет обрабатывать его безопасным способом, централизуя этот механизм только в одном месте (сервер CI), за управлением пользователями и управлением, избегая случайных действий с локальной машины. То, что может пойти не так, в противном случае (публикации из локальной машины):

  • код не может быть выровнен под контролем версий, публикации труднее устранить артефакт
  • тестов может быть пропущено, публикации потенциальной ошибки
  • построить может быть воспроизводимым только на той машине, опубликовав нон повторно работоспособна артефакт

Имея это в pom.xml действительно может подвергать его каким-то образом к вышеупомянутым вопросам (кто-то из команды может ошибочно вызвать его), в то время как автоматизированный пр заработки и ворота обеспечивали бы определенные шаги.

+0

Так что не использовать Maven jfrog плагин для публикаций? – Cherry

+1

на уровне компании, я бы избегал этого. Я бы предпочел делегировать весь механизм серверу CI, не добавляя это поведение в 'pom.xml', который может быть ошибочно вызван членом команды (или даже командой, имеющей учетные данные и гранты на целевом сервере) , То есть люди могут ошибаться, лучше полагаться на автоматизированные процессы и ворота (которые также настроены людьми, я знаю :)). –

+0

@Черри, ты наконец справился с этим делом? какой подход вы выбрали? –

0

Я согласен, что создание автоматизированной сборной коробки и использование jenkins/hudson или какого-либо подобного продукта были бы идеальными для этого.Если вы привязаны к времени и все еще хотите что-то, что имеет немного большую безопасность, вы можете подумать о настройке SSH-аутентификации. документации ниже:

https://www.jfrog.com/confluence/display/RTF/SSH+Integration