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 是否可以从具有相同jar名称的不同目录发布jar,并通过配置控制使用哪个jar?_Ant_Ivy - Fatal编程技术网

Ant 是否可以从具有相同jar名称的不同目录发布jar,并通过配置控制使用哪个jar?

Ant 是否可以从具有相同jar名称的不同目录发布jar,并通过配置控制使用哪个jar?,ant,ivy,Ant,Ivy,我试图在遗留系统的构建过程中添加一些常春藤依赖关系管理,这样我们就可以在下游项目和开发环境中以比目前更好的方式管理我们生产的人工制品的使用。然而,我们的一个构建(我们称之为module-X)在两个不同的目录中生成了两个不同版本的jar文件,用于基于批处理和基于浏览器的应用程序,以及两者都使用的一些常见工件。i、 e: bin\batch\DataObjects.jar–由批处理过程使用 bin\browser\DataObjects.jar–由基于浏览器的 应用程序 bin\common*-批

我试图在遗留系统的构建过程中添加一些常春藤依赖关系管理,这样我们就可以在下游项目和开发环境中以比目前更好的方式管理我们生产的人工制品的使用。然而,我们的一个构建(我们称之为module-X)在两个不同的目录中生成了两个不同版本的jar文件,用于基于批处理和基于浏览器的应用程序,以及两者都使用的一些常见工件。i、 e:

  • bin\batch\DataObjects.jar–由批处理过程使用
  • bin\browser\DataObjects.jar–由基于浏览器的 应用程序
  • bin\common*-批处理和浏览器使用的JAR

我想设置ivy:publish,这样我们就可以在依赖于带有浏览器配置的module-X时使用browser\DataObjects.jar,在使用批处理配置时使用batch\DataObjects.jar,这是否可以使用单个模块?还是我最好拥有多个ivy.xml模块描述符并将它们作为单独的模块发布/使用?

这个问题最好由您的发布管理计划来回答。这些文件是一起发布的,并且应该有相同的修订号吗?另一方面,如果每个工件都有自己的生命周期,并且可以单独发布,那么最好使用单独的模块

要帮助决定,请问自己以下问题。如果更改源文件,是否会导致需要重新编译这两个二进制文件?如果是,则一起释放它们。如果没有,那么单独发布它们可能更简单

最后,是的,当将多个文件作为同一模块的一部分发布时,可以设置两种配置,以便在依赖关系映射中单独下载每个文件

<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
   <info organisation="org.demo" module="myfiles"/>

   <configurations>
      <conf name="default" extends="master,sources,javadoc"/>
      <conf name="master" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
      <conf name="sources" description="this configuration contains the source artifact of this module, if any."/>
      <conf name="javadoc" description="this configuration contains the javadoc artifact of this module, if any."/>
   </configurations>
   <publications>
      <artifact name="myfile" type="jar" ext="jar" conf="master"/>
      <artifact name="myfile" type="source" ext="jar" conf="sources" m:classifier="sources"/>
      <artifact name="myfile" type="javadoc" ext="jar" conf="javadoc" m:classifier="javadoc"/>
   </publications>
   <dependencies>
   ..
   </dependencies>
</ivy-module>

..

最终分离了模块,塔恩克