Apache Ant + Ivy构建了一个部署到本地Tomcat的Web应用程序
题
我将使用Apache Ant和Apache Ivy构建一个部署到本地Tomcat实例的Web应用程序(在开发期间)。我有一些问题:
- 我想从Maven2存储库中获取大多数依赖项,但是对于servlet JAR,我想使用Tomcat提供的一个。有没有办法用常春藤做到这一点?那你这么做怎么想?
- 我使用Ant将Ivy JAR下载到“自动安装”它进入〜/ .ivy2 / jar / ivy.jar,我将Ivy缓存放在默认位置〜/ .ivy2 / cache。我故意将这两个位置保留在项目目录之外。好主意?
- 您是否有一个如何使用Ant作为构建文件,Ivy解决依赖关系,编译WAR文件并将其部署到本地(目前)Tomcat安装的示例?我正在寻找一些最佳实践,然后我可以进一步修改。
- 我在常春藤网站上使用了一些例子并进行了修改。有什么我应该改变的吗?构建文件可以在 http://pastebin.com/f7b34abc2 上看到,因为我在粘贴XML代码时遇到了问题在这里。 醇>
(请注意我不正在寻找我应该使用 Maven2 的建议,即使该建议很有用。)
解决方案
在运行时,tomcat将自己使用它,因为它的类加载器将在其中排除任何带有 javax.servlet.Servlet
的jar。如果你真的必须编译它,你将不得不在ant脚本中执行它,并复制它或在编译类路径中引用它。
另外,根据需要下载常春藤是一个好主意,因为它会阻止将ivy jar检查到项目scm repo中,就像我过去一样,无论是将其下载到项目目录还是用户主页都是个人喜好的问题。另一方面,常春藤缓存应该与其他项目共享,因此用户主目录是一个很好的位置。
一旦你完成了ivy,构建war文件就没有任何不同了:因为所需的jar文件是项目的本地文件,所以只需使用ant war任务来正常创建war。这是常春藤的一个优点,一旦下载了罐子,它就没有更多的东西可以在构建中使用了,你可以使用ant来编译和打包你的项目。
快速浏览一下你的构建文件,看起来很完美。
希望这有帮助。
不隶属于 StackOverflow