【问题标题】:How to build a project and it's dependencies using Ant and Ivy如何使用 Ant 和 Ivy 构建项目及其依赖项
【发布时间】:2011-01-18 09:24:03
【问题描述】:

我有一个包含两个依赖项的 WebApp,如下所示。我想使用 Ant + Ivy 构建一个用于在 Tomcat 上部署的战争文件。

+
+-MyWebApp // this Dynamic Java Web Application (deployed Tomcat and launches
           // a thread contained in MyApp) 
+-MyApp // this is just a vanilla Java Application
+-MyCommonStuff // these are common classes shared between MyApp and MyWebApp
                // Ex. Database access code & business classes

使用 Ant 文档,我研究了如何为每个项目创建适当的 build.xml 文件。 也就是说每个项目都有一个独立的build.xml,所以为了构建整个项目我要做的就是:

mkdir build
cd build
export SOME_COMMONBASE=`pwd`
svn co https://mybuildmachine.lan/svn/mycommonstuff mycommonstuff
cd mycommonstuff
ant
cd ..
% this produces mycommonstuff.jar
svn co https://mybuildmachine.lan/svn/myapp myapp
cd myapp
ant
cd ..
% this produces myapp.jar
svn co https://mybuildmachine.lan/svn/mywebapp mywebapp
cd mycommonstuff
ant
cd ..
% this produces mywebapp.war and deploys it to Tomcat

现在我想做的是将它们整合在一起,以便我可以开始一个构建。从表面上看,我应该能够以某种方式创建一个将依赖项连接在一起的 Ivy build.xml。但是,我已经阅读了 Ivy 文档并在 Google 上搜索了示例,但我仍然对如何完成这项任务一无所知。 有人可以给我一些关于如何做到这一点的指示吗?

【问题讨论】:

    标签: java ant build-automation ivy


    【解决方案1】:

    您要做的是使用Ivy's Ant tasks 进行接线。那里有很多更精细的细节,但基本上你需要自己的 Ivy 存储库,然后只需在那里发布你自己的项目工件以在其他地方使用它们。

    对于 JAR 库项目:

    • 使用ivy:retrieve 获取依赖项,以便您可以将项目构建到库中。
    • 使用 ivy:publish 将构建的 JAR 发布到您自己的 Ivy 存储库中。

    对于 WAR 项目:

    • 再次使用ivy:retrieve 获取依赖项,以便您可以将项目构建为WAR。

    至于其他部分,Ant 本身有很多任务可以帮助你,还有一些其他的任务,例如svn task by tigris 用于从 SVN 获取源代码和Ant's optional SCP task 用于将 WAR 文件传输到外部服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多