Наконец-то я понимаю, что плагин библиотеки Java решает, как создать и запустить проект, используя следующие конфигурации.
- api
- реализация
- compileOnly
- runtimeOnly
Например, предположим, я хочу попробовать OkHttp.
Использование API
Код: Выделить всё
api "com.squareup.okhttp3:okhttp:4.6.0"
Код: Выделить всё
implementation "com.squareup.okhttp3:okhttp:4.6.0"
Я не уверен, что эти конфигурации полезны только в многомодульном проекте, где легче проверить различия (по крайней мере, API и реализация).
Если я углублюсь в OkHttp pom.xml, я не знаю, какая конфигурация используется: API, реализация, compileOnly, runtimeOnly
Код: Выделить всё
4.0.0
com.squareup.okhttp3
parent
3.14.7
okhttp
OkHttp
com.squareup.okio
okio
org.conscrypt
conscrypt-openjdk-uber
provided
org.robolectric
android-all
provided
com.google.code.findbugs
jsr305
provided
org.codehaus.mojo
animal-sniffer-annotations
1.17
provided
org.codehaus.mojo
templating-maven-plugin
1.0.0
filter-sources
org.apache.maven.plugins
maven-javadoc-plugin
3.0.1
okhttp3.internal:okhttp3.internal.*
[*]
http://square.github.io/okio/
org.apache.maven.plugins
maven-jar-plugin
3.1.1
okhttp3
- Как можно проверить разницу между конфигурациями, используя вместо этого удаленную библиотеку подмодулей.
- Как pom.xml знает о зависимостях своих конфигураций?
- Возможно, OkHttp — не лучший пример, есть ли какие-нибудь лучше объяснить эти вопросы?
Подробнее здесь: https://stackoverflow.com/questions/615 ... igurations
Мобильная версия