当前位置: 首页 > 面试题库 >

使用ant脚本自动为我所有项目的ivy版本进行增加

慕健
2023-03-14
问题内容

我在其他50个项目(由他人拥有)中拥有20个常春藤项目,在我的项目中使用了某些版本的二进制文件。

问题是发布期间,我必须手动增加20个常春藤文件的版本,检入文件并构建二进制文件。这很费时间。尽管日食查找和替换有帮助。

使用ant自动化的步骤:

1)单独检出常春藤文件。2)使用脚本/逻辑仅更改我的模块/我的模块相互依赖的版本。3)签入文件。4)标记分支以进行释放。

卡在步骤2休息都相对容易。

尝试了xml任务,但由于有时不知道确切的索引,因此在搜索方面面临挑战。

感谢你的帮助。


问题答案:

我自己找到了以下可行的解决方案,尽管尝试了其他选项,例如通过IVY java解析ivy.xml等。

<target name="autoincrementivy" depends="prompt-user.password">
    <exec executable="svn" failonerror="${svn.failonerror}">
        <arg value="--non-interactive"/>
        <arg value="--trust-server-cert"/>
        <arg value="--username"/>
        <arg value="${svn.user}"/>
        <arg value="--password"/>
        <arg value="${svn.password}"/>
        <arg value="checkout"/>
        <arg value="--depth"/>
        **<arg value="immediates"/>**
        <arg value="${svn.repository}/@{module.name}/trunk"/>
         <arg value="${temp.checkout.dir}/@{module.name}"/>
    </exec>
<move file="${temp.checkout.dir}/ivy.xml" tofile="${temp.checkout.dir}/ivy_src.xml"/>
<ant target="changeVersion" antfile="../deploy.xml" >
   <property name="dest.file" value="${temp.checkout.dir}/ivy.xml"/>
  <property name="src.file" value="${temp.checkout.dir}/ivy_src.xml"/>
  <property name="target.version" value="${tag.version}"/>
</ant>
<!-- cehckin the file-->
</target>

上面的任务是将文件检出到带有.svn文件夹的临时文件夹中,以便cehckin可以正常工作。

    <target name="changeVersion">

    <xmltask source="${src.file}" dest="${dest.file}" preserveType="true" >
        <replace path="/ivy-module/info/@revision" withText="${target.version}" />
        <replace path="/ivy-module/dependencies/dependency[@name='my-common']/@rev"       withText="${target.version}" /> 
<replace path="/ivy-module/dependencies/dependency[@name='my-gui-common']/@rev" withText="${target.version}" /> 
        </xmltask>  
        <fixcrlf file="${src.file}" eol="cr" />
    </target>

以上目标用于解析和更改版本。



 类似资料:
  • 为更具表现力、更可控的构建而组合使用 Ant 和 Groovy Ant 和 Maven 两者在构建处理工具的世界中占统治地位。但是 XML 却凑巧是一种非常没有表现力的配置格式。在“实战 Groovy”这个新系列的第 2 期中,Andrew Glover 将介绍 Groovy 的生成器实用工具,这个工具能够极其容易地把 Groovy 与 Ant 和 Maven 结合在一起,形成更具表现力、更可控的

  • 目前我有一个需要JRE1.8的Java项目。ANT构建脚本用于使用任务编译项目,如下所示: 当运行在使用JRE1.8的计算机上时,该脚本可以很好地工作,但是我现在希望在将JRE1.7设置为默认的计算机上运行该脚本。JRE1.8在此计算机上的目录中可用,运行时会列出安装。 提前道谢!

  • 问题内容: 我目前正在独自完成多个项目(至少开发部分仅由我自己完成:)。结合使用带有不同Java,R,SQL和其他源文件的Eclipse,我想知道哪种版本控制系统最适合我。 当时Eclipse IDE的历史似乎就足够了,但是我不确定在一个月/一年中是否会如此。 您会推荐什么解决方案,为什么? 更准确地说:如果我决定使用完整的版本控制系统,我一定会使用SVN或git。但是我不确定是否有必要… 问题答

  • 我已经使用$.mobile.changepage在我的phonegap jquerymobile项目中进行重定向。然而,让我困惑的是,我需要将所有页面的脚本放在同一个文件中index.html.否则,重定向页面无法执行其标头中的功能。 例如,我的index.html似乎是 然后,我的设备将重定向到测试。html,似乎是 然而,脚本永远不会在test.html.执行然后我把脚本index.html,

  • 问题内容: 问题 我刚刚安装了Sonar Jenkins插件。我进入了配置的作业(自由样式作业),该作业通过ANT构建生成WAR文件工件,并且执行以下操作: 选中声纳复选框。(这里没有问题) 配置声纳的安装目录(这里没有问题) 选中以下复选框: “检查该项目是否不是用maven 2构建的” (我在这里感到困惑) 我已经选中了该框,因为我没有使用Maven进行构建,而是使用ANT,但它仍要求我提供类

  • 问题内容: 目前,我正在尝试自动为MS SQL2005 Server的所有SQL作业生成一个创建脚本。 我发现的一种方法是手动完成的 http://msdn.microsoft.com/en-us/library/ms191450.aspx 我发现的第二种方法可以自动完成,但是我没有直接访问SQL Server的权限。 http://relatedterms.com/thread/1916663/