我正在使用ivysvn来帮助我们在svn存储库中使用本地ivy存储库。
我发现这个tutorial我觉得很容易理解,除了3分外几乎可以工作:
本教程有一个空白的用户名和密码。如何使用我的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
我认为存储库的组织如下(例如,假设服务器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版本#到工件修订版的映射,然后你不需要创建[revision]目录,但是没有意义。
博客文章在源项目中有一个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将它的副本放入存储库?
答案 0 :(得分:0)
关于你的最后一个问题:
ivy.xml文件在w / r / t中的位置将它的副本放入存储库?
ivy.xml文件(比如pom.xml文件)可以告诉ivy关于每个工件的“东西”。常春藤怎么会知道在哪里找到每个JAR的依赖关系?
因此,作为一个广泛的一般性陈述,ivies被排除在存储库之外,其中1)由于某种原因或其他传递依赖关系无关紧要(依赖关系的依赖关系)或2)传递依赖关系是通过其他方式确定的(例如,mvnrepo)。
如果没有深入到你的特定情况的深处,我会说这个工具的创造者必须有一些理由觉得你不需要这些。
我希望我已经解决了关于从存储库中排除ivies的问题。