繁体   English   中英

如何使用Ant和Ivy构建项目及其依赖项

[英]How to build a project and it's dependencies using Ant and Ivy

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

+
+-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文档和Googled的示例,但是对于如何完成此任务,我仍然一无所知。 有人可以给我一些指导我该怎么做吗?

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

对于JAR库项目:

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

对于WAR项目:

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

至于其他部分,Ant本身有许多任务可以为您提供帮助,然后其他人提供了一些任务,例如tigris的svn任务(用于从SVN获取源代码)和Ant的可选SCP任务(用于将WAR文件传输到外部服务器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM