通过更改依赖项

时间:2016-07-07 05:20:29

标签: java maven maven-package

我有一个简单的问题,但作为Maven的新手,目前还不清楚哪个是解决这个问题的最佳方法。

我工作的项目依赖于管理档案,如下所示:net.sf.sevenzipjbindings

这种依赖关系由两个工件构成:一个纯Java,一个提供Java接口,另一个是本机底层代码,根据操作系统有许多风格。

目前,我将maven制作的jar包装为所有平台的所有本地人,但我希望能够做到这样的事情:

  • 工作时(如果我理解正确的compile目标),请使用all-platforms工件(以便我可以从多个操作系统无缝工作)
  • 在打包时构建3个不同的JAR,其中包含由Java接口+特定平台工件组成的依赖项

从我的观点来看,这听起来相当简单,但我很难理解我应该做什么,以及一般的最佳做法是什么。由于这里没有不同的或模块化的功能(比如将代码的一部分隔离到一个独立的模块中),只是替代底层的动态库。

1 个答案:

答案 0 :(得分:0)

听起来你想要一个多模块的Maven构建:

- myapp
  - myapp-engine
  - myapp-windows
  - myapp-linux

myapp-engine模块应取决于external-library-apimyapp-windows模块应取决于myapp-engineexternal-library-windows。由于您实际上只在特定操作系统上运行应用程序以进行任何给定的启动(即使在开发中),因此没有理由不启动特定于操作系统的模块。现代IDE在多模块构建中调试到单独的模块时应该没有问题。