У меня есть служебная библиотека, которая используется в «обычных» проектах Java и в проектах Android.
Между этими платформами есть тонкая разница:
- Java SE нуждается в
org.json:json:20080701
в качестве зависимости - Android уже предоставляет совместимую с компиляцией библиотеку для JSON на базовой платформе.
Что я хотел бы иметь
В лучшем случае было бы иметь один pom.xml, который создает и развертывает 2 артефакта, например.
- mylib-android-1.2.0.jar
- mylib-1.2.0.jar
Я нашел что-то вроде «классификатора», который можно использовать для этой цели, но я видел это только в контексте зависимостей, а не для определения артефактов сборки.
Может ли кто-нибудь указать мне пример (возможно, известный проект с открытым исходным кодом), как это сделать?
Примечание. Я пытался определить org.json:json:20080701 с помощью <scope>provided</scope>
, но сборка Android Gradle жалуется на потенциальную несовместимость, и это заставит пользователей «Java SE» добавить эту зависимость. Не желаемое решение.
Если вы хотите увидеть pom.xml, вот он: https://github.com/hgoebl/DavidWebb/blob/v1.1.0/pom.xml
И это вывод Gradle при использовании библиотеки в том виде, в котором она есть в настоящее время:
ПРЕДУПРЕЖДЕНИЕ. Зависимость org.json:json:20080701 игнорируется для releaseUnitTest, поскольку она может конфликтовать с внутренней версией, предоставленной Android. В случае проблемы, пожалуйста, переупакуйте с помощью jarjar, чтобы изменить пакеты классов.