The Gradle dependency resolution algorithm is complex.
This repository aims to document how different attributes are used so that best practices can emerge.
If you are a plugin author, please contribute to this repository by documenting how your plugin uses attributes.
org.gradle.usage- Source code
- Documentation
- Setting this attribute is strongly recommended.
- If developing a third party plugin that needs to avoid clashing with other attributes, using reverse DNS naming is recommended.
- Gradle known values
java-runtimejava-apikotlin-metadatakotlin-apicplusplus-apinative-linknative-runtimeswift-apiversion-catalog
- Example third party value
com.example.usage.metadata
org.gradle.category- Source code
- Documentation
- Setting this attribute is strongly recommended.
- If developing a third party plugin that needs to avoid clashing with other attributes, using reverse DNS naming is recommended.
- Gradle known values
documentationlibraryplatformenforced-platformverification
- Example third party value
com.example.category.metadata
org.gradle.dependency.bundling- Source code
- Documentation
- Known values
externalembeddedshadowd
org.gradle.docstype- Source code
- Documentation
- Known values:
javadocsourcesuser-manualsamplesdoxygen
org.gradle.libraryelements- Source code
- Documentation
- Known values
aarjarclassesresourcesclasses+resourcesheaders-cpluspluslink-archiveobjectsdynamic-lib
org.gradle.jvm.environment- Source code
- Documentation
- Known values
androidstandard-jvmnon-jvm
org.gradle.jvm.version- Source code
- Documentation
- Integer (8-25)
artifactType- Source code
- Documentation
- Known values
jarjava-classes-directoryjava-resources-directoryzipdirectorybinaryandroid-aar-metadata(from Android)android-art-profile(from Android)android-assets(from Android)android-classes-directory(from Android)android-classes-jar(from Android)android-compiled-dependencies-resources(from Android)android-consumer-proguard-rules(from Android)android-java-res(from Android)android-jni(from Android)android-lint(from Android)android-lint-local-aar(from Android)android-lint-model-metadata(from Android)- ...
org.gradle.native.debuggable: booleanorg.gradle.native.optimized:booleanorg.gradle.native.architecture- Known values
x86x86-64aarch64
- Known values
org.gradle.native.operatingSystem- Known values
windowslinuxmacos
- Known values
org.jetbrains.kotlin.platform.type- Source code
- Known values
commonnativejsjvmwasm
org.jetbrains.kotlin.native.target- Source code
- Known values
android_arm32android_arm64android_x64android_x86ios_arm64ios_simulator_arm64ios_x64linux_arm64linux_x64macos_arm64macos_x64mingw_x64tvos_arm64tvos_simulator_arm64tvos_x64watchos_arm32watchos_arm64watchos_device_arm64watchos_simulator_arm64watchos_x64
org.jetbrains.kotlin.js.compiler- Source code
- Known values
ir
org.jetbrains.kotlin.wasm.target- Source code
- Known values
jswasi
dev.opensavvy.resources- Source code
- Documentation
- Known values
Regular
- Must be used alongside
org.gradle.categoryorg.gradle.libraryelementsorg.jetbrains.kotlin.platform.typeorg.jetbrains.kotlin.native.target
javaModule: boolean