有趣...常春藤项目中的lib 目录。
您可以修改 build.xml 以再创建一个调用 <ivy:makepom/> 目标的目标。只要确保首先调用<ivy:resolve>。这将创建您需要的一小部分pom.xml 文件。
至于其余的。这是什么技术术语?哦,是的,你被搞砸了。
问题在于 Ant 和 Maven 有两种完全不同的构建理念。在 Ant 中,您编写了一个 build.xml 脚本来描述您想要构建的内容以及您希望如何构建它。在 Maven 中,您通过pom.xml 文件描述您的项目,Maven 会为您完成所有构建处理。
这不是 Ant 或 Maven 是否是世界上所有美好事物的力量的问题,另一个问题仅适用于 luzers Apple Fanboys。这是一个手动将预先存在的项目转换为 Maven 的案例。
您必须查看您的build.xml 并弄清楚它在做什么。然后,您需要将其转换为 Maven pom.xml 文件。没有办法自动执行此操作。更糟糕的是,Red5 不像 Maven 项目那样设置,所以你要么必须移动所有文件,要么进入古老的pom.xml 配置地狱,试图覆盖 Maven 假设构建应该发生的方式。这可能需要几天甚至几周的时间才能正确完成。而且,最终,您会得到一个您无法控制的项目,如果您想更新,就必须从头开始重新完成。
相信我,我之前在另一份工作中这样做过,系统架构师认为 Maven 比 Ant 更好,我们所有的项目都必须从 Ant 转换为 Maven。而且,谁被这个任务困住了?不是那些忙于其他任务的开发人员,而是我的配置经理。
最后,您将拥有一个您无法控制的项目,如果您想更新,就必须从头开始重新完成。
还有一个选择:忽略它。
Red5 是否是 Ivy 项目真的很重要吗?无论如何,您需要从这个 Red5 项目中得到什么?你需要 red5.jar 还是构建的发行版。
如果您需要分发,请将其保留为 Ivy 项目。只需将ivysettings.xml 设置为指向您的Maven 存储库并让它知道它是Maven 2 格式。常春藤将毫无问题地从中获取东西。那如果是常春藤呢?
如果您在其他 Maven 项目中只需要 red5.jar 文件,您可以简单地使用 <ivy:makepom/> 任务为您生成 pom.xml 文件。然后使用mvn deploy:deploy-file 将该jar 部署到您的Maven 存储库中:
$ mvn deploy:deploy-file -Dfile=red5.jar \
-DpomFile=pom.xml \
-DrepositoryId=$repoId \
-Durl=$url
现在,您的 red5.jar 作为一个完全可传递的下载 jar 在您的 Maven 存储库中。如果你真的,真的想变得花哨,你可以将生成的 pom.xml 文件嵌入到 jar 本身中,所以它就像 Maven jar 一样自引用。破解当前的 build.xml 文件大约需要 30 分钟。 (或者,如果您的 jar 不必在其中嵌入 pom.xml,则可以使用一个单独的 Ant 文件来构建您需要的 pom.xml,甚至可以为您将其部署到您的 Maven 存储库中。这样,如果项目已更新,您不必担心 build.xml 文件正在更新。