mjn*_*mjn 9 delphi build-automation freepascal maven fpmake
Apache Maven是Java开源生态圈中非常流行的构建和依赖管理工具.我做了一些测试,以确定它是否可以处理编译的Free Pascal/Delphi单元并且发现它易于实现.所以有可能
这种依赖管理方式对于使用许多具有复杂依赖性的第三方库的开源项目非常有用.它可以避免因使用错误版本而导致的典型冲突.
对于开发人员,编辑和构建项目的工作流程将降至最低:
mvn package以自动下载所有必需的第三方库(预编译单元),如果它们尚未在工作站的本地存储库中项目文件夹中唯一需要的Apache Maven附加文件是包含项目信息的POM.XML文件.
编辑:虽然Maven可用于一些必需的任务,但在本机Free Pascal中实现像Maven这样的解决方案会有一些优势:不需要Java SDK,支持Free Pascal可用的所有开发平台,Pascal中的维护和插件开发.
使用类似Maven的工具仅对开源项目没有帮助 - 商业项目也可以以相同的方式访问和使用公共Maven存储库中的工件.
Maven功能列于http://maven.apache.org/maven-features.html
更新:
一个用例可能是Lazarus的构建,其中Maven将下载所有必需的库并使用必要的构建路径参数调用编译器.较低级别的依赖关系的更改将自动传播到父级构建.
可能的好处:
更新#2:FPMake
Free Pascal 的FPMake构建系统似乎是一个具有很大潜力的工具,在许多细节上它与Maven非常相似:
fppkg <packagename>将在数据库中查找该包,将其解压缩,然后编译fpmake.pp并运行它mvn deploy或mvn install)的"清单"文件,清单是一个XML文件,看起来非常类似于Maven中的pom.xml:FPMake清单文件:
<packages>
<package name="my-package">
<version major="0" minor="7" micro="6" build="1"/>
<filename>my-package-0.7.6-1.zip</filename>
<author>my name</author>
<license>GPL</license>
<homepageurl>http://www.freepascal.org/</homepageurl>
<email>myname@freepascal.org</email>
<description>this is the package description</description>
<dependencies>
<dependency>
<package packagename="rtl"/>
</dependency>
</dependencies>
</package>
</packages>
Run Code Online (Sandbox Code Playgroud)
听起来是一个有趣的计划,但 Delphi 社区(我想 FPC 更是如此!)将库作为源代码的价值远远超过预编译库。普遍的共识是,任何使用纯二进制库的人都是傻瓜,原因有两个:你无法修复在其中发现的任何错误,并且编译器的更改将破坏兼容性。
| 归档时间: |
|
| 查看次数: |
2707 次 |
| 最近记录: |