我有一个实用程序库,用于“普通”Java 项目和 Android 项目。
这些平台之间存在细微差别:
- Java SE 需求
org.json:json:20080701
作为依赖项 - Android 已经在核心平台中提供了 JSON 的编译兼容库
我想要什么
最好的情况是有一个 pom.xml 来创建和部署 2 个 Artifact ,例如
- mylib-android-1.2.0.jar
- mylib-1.2.0.jar
我发现了类似“分类器”的东西,它可能用于此目的,但我只在依赖项的上下文中看到它,而不是用于定义构建 Artifact 。
有人能给我举一个例子(也许是一个著名的开源项目)如何做到这一点吗?
备注:我尝试使用 <scope>provided</scope>
定义 org.json:json:20080701 ,但 Android Gradle 构建提示潜在的不兼容性,这将迫使“Java SE”用户添加此依赖项。这不是所需的解决方案。
如果您想查看 pom.xml,这里是:https://github.com/hgoebl/DavidWebb/blob/v1.1.0/pom.xml
这是当前使用库时的 Gradle 输出:
WARNING: Dependency org.json:json:20080701 is ignored for releaseUnitTest as it may be conflicting with the internal version provided by Android. In case of problem, please repackage with jarjar to change the class packages
最佳答案
您正在寻找的是 Maven Profiles 。您可以自定义每个配置文件的依赖项。
关于java - Maven 针对不同平台目标(例如 Android 和 Java SE)构建和部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32655812/