【发布时间】:2011-05-21 20:59:58
【问题描述】:
我正在尝试寻找像 Maven(标准化构建和打包、工件存储库等)这样的工具,它支持的不仅仅是 Java(和 C/C++),特别是 Python 和 .NET (C#)。尤其需要良好的依赖管理。
我们在自己的地方经营着一家混合语言商店,而当前基于 Python 的本土“über-buildsystem”应该会消失。请注意,它不会尝试进行详细的构建,只是处理模块/项目之间的依赖关系,下载编译的工件(在 C++ 案例中每个库几百兆)并在现有的 .sln/.vcproj 上调用 msbuild/easy_install/etc /etc 文件来完成真正的构建。
它可以工作,但主要是因为我构建了它并且知道它可以做什么和不能做什么,并且当我需要新东西时我会扩展它。这并没有真正帮助其他开发人员参与进来,我越来越觉得我们不应该专注于此。 (尽管这的工作并不多,而且似乎也没有令人信服的替代方案。)
所以:
- Python 的 setuptools 似乎只适用于 Python(以及一些 c++ -> .pyd 编译)。
- Maven 主要用于 Java,还有一些 C/C++,主要用于 JNI。
- 对于 C/C++,没有...什么都没有? (用于构建的 qmake/cmake)
- 对于 .NET,有一些东西,但它们在 Visual Studio 和 MSFT 工具链之外是否也能正常工作?
在 Ant(主要使用 Beanshell)之上构建另一个 Maven(但具有更灵活的支持)是我已经做过的事情。当前的 Python-stuff 是它的一个分支。
更新:
Ant+Ivy 需要在上面构建相当多的东西,正如我上面所指出的,但它可能比我们今天拥有的更好的基础,因为我们获得了更多的构建任务和开箱即用的工件 repo。 (见Maven Like dependency management for C++)
热烈感谢所有帮助!
【问题讨论】:
-
这是一个非常好的问题。我也在寻找可以利用工件存储库的工具。你现在有一些更新吗?
-
@SteinwayWu:不。我认为最好的方法是 Ant/Ivy,因为您可以在那里制作自己的任务并将 Ivy 用作通用工件管理系统。我们仍在运行我的 python 系统,其中包含用于工件 repo 的静态 http 服务目录,因为我们目前只存储(从 C++ 编译的)第三方库。
-
我发现最新的 CMake 可以支持本地存储库之类的东西。它通过 CMake/CPack 及其导入/导出功能得到支持。您可能想在 cmake.org 上查看它们以获取最新信息。我将在我的 ATS 项目的建设中尝试它。
-
@SteinwayWu:你成功了吗?如果是这样,您可以发布答案吗?
标签: build maven dependency-management