java - 如何用 Maven 打包 Ant 项目?
问题描述
在我正在处理的项目中,有一个外部依赖项在公共 Maven 工件索引上不可用,但是有一个包含项目代码的公共存储库。该项目是使用原生构建的ant
。
我们计划做的是自动下载依赖代码,为其提供一个 POM 文件,然后将其构建为我们基于 Maven 的大项目的一部分。
到目前为止,我已经设法创建了一个 POM 文件来编译依赖项,maven-ant-plugin
但我无法将项目安装到本地 Maven 存储库中,mvn install
跳过使用 ant 编译的 jar 和类,只安装一个空的虚拟 jar。
到目前为止,谷歌搜索没有给出任何结果,每个人都建议重新排列代码以适应默认的 maven 目录结构并使用 maven 构建它,但这会使从上游更新依赖项变得不可能,因为那样我将不得不再次重新排列文件时新的上游版本发布。
目标是有一个 POM 文件,我可以将其放入 ant 项目的根目录中,更新版本号,然后执行 mvn install 并使已编译的 jar 在本地 maven 存储库中可用。
如何让 maven 识别 ant 编译的 jar 或 ant 编译的类?
解决方案
我建议你使用install:install-file
目标。
它允许您明确说明应该安装哪个 jar 和哪个 POM。
我曾经以同样的方式做到这一点:添加了一个 POM,它首先通过 Ant 构建所有内容,然后调用install-file
生成的工件的目标。
推荐阅读
- java - Java 11:获取“空 [客户端] 证书链”而不是“空 [服务器] 证书链”
- input - 如何在 Makefile 中只读取一个字符
- python - 修改交互式 python 脚本以在开始时接受参数
- flutter - 颤振任务:android_intent:compileDebugJavaWithJavac FAILED
- macos - macOS sendfile 将 errno 设置为 45
- python - 在以下路径中找不到名称为“base”的模板子目录:
- r - 如何自动为时间序列数据中的每一天创建一个子集
- ansible - 如果成为用户或密码错误,如何使 ansible-playbook 失败?
- squeryl - Squeryl 按顺序合并
- pagination - Prestashop 由于分页而隐藏类别描述