0

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

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

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

目前,我正在将 maven 构建的 jar 与所有平台的所有本地人打包,但我希望能够执行以下操作:

  • 在项目上工作时(compile如果我理解正确,那么目标)使用全平台工件(这样我就可以从多个操作系统无缝工作
  • 打包时构建 3 个不同的 JAR,其依赖项由 Java 接口 + 特定平台工件组成

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

4

1 回答 1

0

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

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

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

于 2016-07-07T16:36:55.223 回答