0
我花了数年的时间尝试将使用本机代码的库部署到Maven Central。我遇到了以下问题:使用Maven构建和部署本地代码
- 没有任何使用Maven构建本机代码的好插件。 native-maven-plugin是一个非常严格的构建系统,除此之外,它使得调试所产生的二进制文件变得困难。您必须手动将native-maven-plugin构建系统与用于调试的本机IDE同步。
- Maven没有替换部署的pom.xml文件中的变量:MNG-2971,MNG-4223。这意味着库必须为每个Maven概要文件声明特定于平台的依赖关系(而不是声明一次依赖关系并为每个概要文件设置不同的分类器)。否则,依赖于您的库的任何人都必须在其项目文件中重新定义这些相同的属性,以便解决传递依赖性。请参阅Maven: Using inherited property in dependency classifier causes build failure。
- Jenkins对跨不同平台运行类似逻辑有非常大的支持(例如“shell”与“批处理”任务,以及跨多台机器协调构建)
- 在虚拟机中运行Windows,Linux和Mac的速度太慢了,脆弱。即使你运行起来,试图将虚拟机配置成詹金斯奴隶也是一个令人沮丧的教训(你会经常发生间歇性的构建错误)。
- 的Maven中央要求有关特定于平台的文物主要罐子:OSSRH-975
- Sonatype OSS Repository Hosting和maven-release-plugin认为有可能在一台机器在一个原子的方式来释放一个项目。
我打算使用这个Stackoverflow问题来记录我如何设法克服这些限制。