我的项目依赖于某些第三方JAR,这些JAR在Maven Central中不可用。在Maven生命周期内安装第三方JARs与系统作用域依赖关系
我看到关于这种情况的大部分信息,包括官方Maven Guide to installing 3rd party JARs,建议使用mvn install:install-file ...
将工件安装到本地存储库中。这在当地开发时效果很好,但是当构建需要以自动化方式在许多不同的系统上执行时,需要这种手动步骤是不理想和不切实际的。
经常提出的另一个解决方案是将依赖项安装到组织范围的存储库中,但是在某些情况下这是不可能的。
既没有这些选项是可以接受的,我能想到的两个选项:
- 存放在项目中的lib目录的JAR,并宣布了
system
范围的依赖(如severalanswers建议) 。这似乎适用于任何系统,因为依赖项与项目捆绑在一起,但我认为使用system
是不好的做法(通常没有更多的解释)。 - 将maven-install-plugin绑定到
initialize
生命周期阶段以将工件安装到本地存储库。但是,正如here所指出的那样,这会导致不必要的开销,因为它会针对每个构建版本运行。如果只有在没有安装神器时才有办法执行此操作,那可能是理想的。
我想要一个标准的Maven项目,可以使用常规的Maven生命周期来构建,而不需要任何带外的“运行脚本/初始化依赖关系”的步骤。
什么是最好的前进方向?