我正在学习Ivy(http://ant.apache.org/ivy/)并将其作为构建过程的一部分进行整合。它进展顺利,但我坚持使用常春藤发布任务。具体来说,我想使用以下模式(包括当前配置的名称)发布到本地存储库:
$ {ivy.local.default.root} / [组织] / [模块] / [修改] / [类型] S / [CONF] / [工件]。[EXT] < / p>
所以我设置了自定义解析器:
<filesystem name="modifiedLocalRepo">
<ivy pattern="${ivy.local.default.root}/[organisation]/[module]/[revision]/[type]s/[conf]/[artifact].[ext]" />
<artifact pattern="${ivy.local.default.root}/[organisation]/[module]/[revision]/[type]s/[conf]/[artifact].[ext]" />
</filesystem>
并配置了发布任务:
<ivy:publish
settingsRef="ivy.ext.settings.custom" <!--Location of definition of modifiedLocalRepo-->
resolver="modifiedLocalRepo"
artifactspattern="bin/Debug/[module].[ext]"
pubrevision="1.1-Test"
overwrite="true"
conf="primary"
/>
并在ivy.xml文件中定义了conf:
<info organisation="Mine" module="Dependency"/>
<configurations defaultconf="primary"> <!--Don't think defaultconf should be necessary-->
<conf name="primary"/>
</configurations>
<publications>
<artifact name="Dependency" ext="dll" type="bin" conf="primary"/>
<artifact name="Dependency" ext="pdb" type="bin" conf="primary"/>
</publications>
我让流程正常工作,常春藤配置,解决,项目构建和工件发布(使用上面的自定义解析器)。但[conf]令牌始终解析为“默认”。因此发布的目录具有以下结构:
\。ivy2 \本地\矿\依赖\ 1.1试验\仓\默认\
而不是结构
\。ivy2 \本地\矿\依赖\ 1.1试验\仓\主\
我一直在修补它,在它们有效的地方设置conf值,defaultconf值等,但它始终是“默认的”。
我正在使用ant来进行构建,并且已经在调试模式下运行(-d),检查了输出并注意到没什么用处。我查看了&lt; echoproperties \&gt;的输出。并注意到没有用。我已经阅读了常春藤文档,并且只在检索和报告输出中使用[conf]作为标记。
如果它有用,我可以附加我正在使用的完整xml文件来进行有限的测试构建。
[conf]令牌是否在常春藤发布的工件模式中有效/受到尊重?如果是这样,我错过了什么?谢谢!
更新 使用Ivy 2.3.0-rc2并决定尝试回滚并使用Ivy 2.0.0。同样的问题。
答案 0 :(得分:0)
在github中查看我的常春藤项目。我进行了设置,因此您可以轻松地将其添加到现有的Ant项目中。
我们使用Maven存储库,因此我将其设置为创建pom.xml
,然后使用mvn deploy:deploy-file
将其部署回Maven存储库。我们使用Jenkins进行构建,因此我们使用Jenkins运行mvn deploy-file
来进行部署。我想我们可以使用<ivy:publish>
,但从未真正尝试过。