Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ant 使用Ivy发布文件时是否尊重[conf]标记?_Ant_Configuration_Build_Ivy - Fatal编程技术网

Ant 使用Ivy发布文件时是否尊重[conf]标记?

Ant 使用Ivy发布文件时是否尊重[conf]标记?,ant,configuration,build,ivy,Ant,Configuration,Build,Ivy,我在学常春藤http://ant.apache.org/ivy/ 并将其作为构建过程的一部分进行集成。事情进展得很顺利,但我一直在做常春藤的出版工作。具体来说,我希望使用以下模式发布到本地存储库,其中包括当前配置的名称: ${ivy.local.default.root}/[organization]/[module]/[revision]/[type]s/[conf]/[artifact].[ext] 因此,我设置了自定义解析器: <filesystem name="modifiedLo

我在学常春藤http://ant.apache.org/ivy/ 并将其作为构建过程的一部分进行集成。事情进展得很顺利,但我一直在做常春藤的出版工作。具体来说,我希望使用以下模式发布到本地存储库,其中包括当前配置的名称:

${ivy.local.default.root}/[organization]/[module]/[revision]/[type]s/[conf]/[artifact].[ext]

因此,我设置了自定义解析器:

<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>
我已经使用上面的自定义解析器完成了流程工作、ivy配置、解决、项目构建和工件发布。但是[conf]标记总是解析为默认值。因此,发布的目录具有以下结构:

\.ivy2\local\Mine\Dependency\1.1-Test\bin\default\

而不是结构

\.ivy2\local\Mine\Dependency\1.1-Test\bin\primary\

我一直在修改它,设置conf值、defaultconf值等等。它们在任何地方都是有效的,但总是默认的

我正在使用ant进行构建,并在调试模式-d下运行,检查了输出,但没有发现任何有用的东西。我查看了的输出,没有发现任何有用的东西。我通读了Ivy文档,只发现在检索和报告输出中使用[conf]作为标记

如果有用的话,我可以附加我用来进行有限测试构建的完整xml文件

[conf]标记在Ivy发布的工件模式中有效/受尊重吗?如果是,我错过了什么?谢谢

更新:
正在使用Ivy 2.3.0-rc2,并决定尝试回滚并使用Ivy 2.0.0。同样的问题。

看看我在伦敦的常春藤项目。我设置了它,所以您可以轻松地将其添加到现有的Ant项目中


我们使用一个Maven存储库,所以我将其设置为创建一个pom.xml,然后使用mvn deploy:deploy文件将其部署回Maven存储库。我们使用Jenkins进行构建,因此我们使用Jenkins运行mvn部署文件来进行部署。我想我们可以使用,但从未真正尝试过。

查看了整个项目。不幸的是,这没有多大帮助,因为我特别需要了解Ivy的[conf]发布。您仅将[conf]用作检索模式的一部分,我从Ivy示例中知道该模式是有效的。但作为一个更深入的常春藤例子,该项目本身将是一个很好的回顾。谢谢它应该可以工作,您可以试试ant-v verbose,看看是否有什么奇怪的地方吗?只是在verbose中运行,发现ivy:publish输出正在从ivy-2.3.0-rc2.jar文件加载默认的ivy.properties文件,然后与其他文件一起声明忽略属性“ivy.configurations”的覆盖。当我在调试中运行时,那个输出就在那个里,但我懊恼地错过了它。但ivy.com的价值在于,我认为这是可行的。此外,我还检查了ivy.resolved.configurations,并在ivy:publish之前将其设置为primary。