如何为不同的平台创建maven工件,即需要系统库

时间:2015-11-30 17:52:51

标签: maven jar maven-2

我有一个JAR文件,我想将其作为工件添加到我的maven 2存储库中。 JAR依赖于特定于每个平台的系统库,例如Windows上的.dll,Linux上的.so等。

我应该如何创建工件,以便来自不同平台的用户可以使用JAR?

1 个答案:

答案 0 :(得分:1)

如果您的JAR是library ,您希望将其包含在其他项目中,那么您可以创建可以基于系统激活的maven配置文件并添加所需的任何系统依赖项那里。

<profiles>
  <profile>
    <activation>
      <os>
        <name>Windows XP</name>
        <family>Windows</family>
        <arch>x86</arch>
        <version>5.1.2600</version>
      </os>
    </activation>
    ...
  </profile>
</profiles>

然而,如果您正在制作executable JAR ,那么这是一个完全不同的故事。

有很多方法可以做到这一点,并非一切都很容易。如果您知道要查找的内容(DLLSO lib的名称),那么您可以创建一个启动脚本:

  1. 尝试在课程路径中找到一个
  2. 尝试在系统路径中找到一个
  3. 尝试在“默认”/“最期望”的位置找到一个
  4. 搜索具有文件位置的.config文件
  5. 要求用户输入文件路径
  6. 有些应用会执行所有这些步骤,有些会做一些或只做一次。我想知道是否有更好的方法:)