ivysvn: организация файлов и пароли

Я ищу возможность использовать ivysvn, чтобы помочь нам использовать локальный репозиторий ivy в нашем репозитории svn.

Я нашел это руководство, которому мне легко следовать и которое почти работает, за исключением трех пунктов:

  1. В руководстве есть пустые имя пользователя и пароль. Как я могу заставить это работать с нашим репозиторием SVN (который не позволяет анонимные коммиты) без необходимости указывать свое имя пользователя и пароль в ivysettings.xml или build.xml? Самое близкое, что я мог придумать, - это использовать в ivysettings.xml:

    <svn name="ivysvn"
             repositoryRoot="{{{deleted}}}"
             userName="${svn.user.name}" userPassword="${svn.user.password}" 
             binaryDiff="false">
          <ivy pattern="[organisation]/[module]/[revision]/ivy.xml"/>
          <artifact pattern="[organisation]/[module]/[artifact].[ext]"/>
     </svn>
    

    а затем в командной строке выполните

    ant -Dsvn.user.name={{{deleted}}} -Dsvn.user.password={{{deleted}}} publish 
    
  2. Я думал, что организация репозитория следующая (например, предположим, что URL-адрес сервера - http://someserver/svn/cache/ivy, организация - Yoyodyne, а модуль - HappyFunBall)

    http://someserver/svn/cache/ivy/
      Yoyodyne/
        HappyFunBall/
          1.0/
            ivy.txt
            libraries here
    

    Это означает, что в ivysettings.xml

        <ivy pattern="[organisation]/[module]/[revision]/ivy.xml"/>
        <artifact pattern="[organisation]/[module]/[revision]/[artifact].[ext]"/>
    

    и не

        <ivy pattern="[organisation]/[module]/[revision]/ivy.xml"/>
        <artifact pattern="[organisation]/[module]/[artifact].[ext]"/>
    

    Что правильно? В идеале было бы сопоставление версии SVN № с ревизией артефакта, и тогда вам не нужно было бы создавать каталоги [ревизии], но что-то не имеет смысла.

  3. Сообщение в блоге содержало в исходном проекте файл ivy.xml со следующим текстом:

     <ivy:publish resolver="ivysvn"  forcedeliver="true" 
          overwrite="true" publishivy="false">
            <!-- defines the location from where the libraries 
            are to be picked up from for publishing -->
      <artifacts pattern="lib/[artifact].[ext]"/>
    </ivy:publish>
    

    и я думаю, что понимаю все это, за исключением части publishivy="false", поскольку часть поиска не будет работать, кроме тех случаев, когда я изменил ее на publishivy="true". Что правильно? Где находится файл ivy.xml без помещения его копии в репозиторий?


person Jason S    schedule 21.10.2010    source источник


Ответы (1)


Вау, это было много читать. ржу не могу

Относительно вашего последнего вопроса:

Где находится файл ivy.xml без помещения его копии в репозиторий?

Файлы ivy.xml (например, файлы pom.xml) работают, чтобы сообщить "материал" ivy о каждом артефакте. Как еще Ivy узнал бы, где найти зависимости каждого JAR?

Итак, в широком смысле слова плющи исключены из репозиториев, где либо 1) по той или иной причине транзитивные зависимости не имеют значения (зависимости зависимостей) или 2) транзитивные зависимости определяются другими способами (mvnrepo, Например).

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

Надеюсь, я ответил на ваш вопрос об исключении плющей из репозиториев.

person gMale    schedule 27.02.2011