代码之家  ›  专栏  ›  技术社区  ›  Jason S

ivysvn:文件组织和密码

  •  1
  • Jason S  · 技术社区  · 14 年前

    我在考虑使用 ivysvn 帮助我们在SVN存储库中使用本地常春藤存储库。

    我找到这个了 tutorial 我发现这很容易理解,而且几乎有效,除了3点:

    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文件从何而来,w/r/t将其副本放入存储库?

    1 回复  |  直到 14 年前
        1
  •  0
  •   gMale    13 年前

    哇,真是太多了。大声笑

    关于你的最后一个问题:

    ivy.xml文件从何而来,w/r/t将其副本放入存储库?

    xml文件(比如pom.xml文件)可以告诉ivy关于每个工件的“信息”。不然艾薇怎么知道在哪里可以找到每个jar的依赖项呢?

    因此,作为一个宽泛的通用语句,ivie被排除在存储库之外,其中1)出于某种原因或其他可传递依赖关系无关紧要(依赖关系的依赖关系)或2)可传递依赖关系是通过其他方法(例如mvnrepo)确定的。

    如果不深入了解你的具体情况,我会说,一定有某种原因,工具的创造者觉得你不需要常春藤。

    我希望我已经解决了你关于把常春藤从仓库中排除的问题。