【发布时间】:2013-09-17 12:21:46
【问题描述】:
我有一个 Eclipse 项目,它依赖于同一工作区中的几个其他项目。我知道为单个独立 Java 项目创建一个简单的 Ant 构建脚本很热门,但是如何告诉 Ant 将所有这些项目集成到我的主 JAR 文件中,以便我的依赖程序可以工作?
【问题讨论】:
我有一个 Eclipse 项目,它依赖于同一工作区中的几个其他项目。我知道为单个独立 Java 项目创建一个简单的 Ant 构建脚本很热门,但是如何告诉 Ant 将所有这些项目集成到我的主 JAR 文件中,以便我的依赖程序可以工作?
【问题讨论】:
在 Ant 中,最简单的方法是显式枚举那些其他项目并将它们包含在 jar 目标中。比如:
<path id="all-projects">
<fileset dir="../my.other.project" includes="**/*class">
</path>
【讨论】:
一个解决方案:Create a master project and put all the projects into it and have a single build.xml.
另一种选择:Create a master project but leave everything at the same level (do not place project-components inside the project folder) Then arrange your build script to refer to the other projects via relative paths. Note that with some build tools this is not even necessary as they will look at their repository.
【讨论】:
虽然您可以将解决方案与 Ant 混合在一起,但 Apache Maven 是比 Ant 更好的管理依赖项的解决方案。如果您不想使用完整的 Maven 生命周期管理项目,您还可以考虑使用 Nexus 存储库来存储您的工件,并在您的 Ant 构建脚本中包含 Apache Ivy 以执行依赖管理。
Ivy 或 Maven 将提供更好、更易于管理的依赖管理策略,这可能比您自己组装的任何东西更容易集成到团队中。
【讨论】: