2

是否可以在 pom.xml 文件中为 javacpp-presets (opencv-platform) 定义目标环境?我知道您可以-Djavacpp.platform在执行时设置属性mvn clean install。这将激活正确的 Maven 配置文件,并且不会将其他系统库添加到最终的 jar 中。但是有没有机会直接在pom中定义平台来避免执行maven时的-D参数呢?

谢谢!

4

1 回答 1

2

这是我想出的解决方案:

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>${opencv.version}</version>
</dependency>

<dependency>
    <groupId>org.bytedeco.javacpp-presets</groupId>
    <artifactId>opencv</artifactId>
    <version>${opencv.version}</version>
    <classifier>${os.detected.classifier}</classifier>
</dependency>

${os.detected.classifier}可以在 pom 中设置。我将此属性与以下构建扩展一起使用:

<build>
    <extensions>
        <extension>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
            <version>1.6.1</version>
        </extension>
    </extensions>
...

此扩展(https://github.com/trustin/os-maven-plugin)将在构建时检测操作系统并通过此属性设置正确的分类器。

于 2019-10-02T21:43:13.757 回答