2015-09-18 2 views
1

У меня есть библиотека утилиты, которая используется в «обычных» Java-проектах и ​​в проектах Android.Maven строит и развертывает для разных целей платформы (например, Android и Java SE)

Существует тонкое различие между этими платформами:

  • Java SE нуждается org.json:json:20080701 как зависимость
  • Android уже обеспечивает компиляцию-совместимой библиотеку для JSON в основных платформах

Что бы я хотел иметь

Лучшим случаем было бы иметь одиночный p om.xml, который создает и развертывает 2 артефакта, например.

  • MyLib-андроида-1.2.0.jar
  • MyLib-1.2.0.jar

Я нашел что-то вроде "классификатор", который может быть использован для этой цели, но Я видел это только в контексте зависимостей, а не для определения артефактов сборки.

Может ли кто-нибудь указать мне пример (возможно, известный проект с открытым исходным кодом), как это сделать?

Примечание: Я пытался определить org.json: json: 20080701 с <scope>provided</scope>, но Android Gradle build жалуется на потенциальные несовместимости, и это заставит пользователей Java SE добавлять эту зависимость. Не желаемое решение.

В случае, если вы хотите увидеть pom.xml, вот оно: https://github.com/hgoebl/DavidWebb/blob/v1.1.0/pom.xml

И это выход Gradle при использовании библиотеки, как это в настоящее время:

ПРЕДУПРЕЖДЕНИЕ: Зависимость от орг. json: json: 20080701 игнорируется для releaseUnitTest, поскольку это может противоречить внутренней версии, предоставляемой Android. В случае возникновения проблем, пожалуйста, упакуйте с jarjar изменить пакеты класса

ответ

0

Что вы ищете является Maven Profiles. Вы можете настроить зависимости для каждого профиля.

Смежные вопросы