diff --git a/.gitignore b/.gitignore
index b023787595..d424b2597a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,4 @@ test-output
MANIFEST.MF
work
atlassian-ide-plugin.xml
+/bom/.flattened-pom.xml
diff --git a/README.md b/README.md
index 218d72037e..a306c4937b 100644
--- a/README.md
+++ b/README.md
@@ -9,16 +9,37 @@ It's built on top of [Netty](https://github.com/netty/netty). It's currently com
## Installation
-Binaries are deployed on Maven central:
+Binaries are deployed on Maven Central.
+
+Import the AsyncHttpClient Bill of Materials (BOM) to add dependency management for AsyncHttpClient artifacts to your project:
+
+```xml
+
+
+
+ org.asynchttpclient
+ async-http-client-bom
+ LATEST_VERSION
+ pom
+ import
+
+
+
+```
+
+Add a dependency on the main AsyncHttpClient artifact:
```xml
-
- org.asynchttpclient
- async-http-client
- LATEST_VERSION
-
+
+
+ org.asynchttpclient
+ async-http-client
+
+
```
+The `async-http-client-extras-*` and other modules can also be added without having to specify the version for each dependency, because they are all managed via the BOM.
+
## Version
AHC doesn't use SEMVER, and won't.
diff --git a/bom/pom.xml b/bom/pom.xml
new file mode 100644
index 0000000000..8abb186be7
--- /dev/null
+++ b/bom/pom.xml
@@ -0,0 +1,109 @@
+
+
+ 4.0.0
+
+
+ org.asynchttpclient
+ async-http-client-project
+ 2.10.5-SNAPSHOT
+
+
+ async-http-client-bom
+ pom
+ Asynchronous Http Client Bill of Materials (BOM)
+ Importing this BOM will provide dependency management for all AsyncHttpClient artifacts.
+ http://github.com/AsyncHttpClient/async-http-client/bom
+
+
+
+
+ org.asynchttpclient
+ async-http-client
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-example
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-guava
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-jdeferred
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-registry
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-retrofit2
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-rxjava
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-rxjava2
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-simple
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-extras-typesafe-config
+ ${project.version}
+
+
+ org.asynchttpclient
+ async-http-client-netty-utils
+ ${project.version}
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ 1.1.0
+ false
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+ bom
+
+ remove
+ remove
+ remove
+ remove
+
+
+
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
index 152b365156..47709923e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -240,6 +240,7 @@
+ bom
netty-utils
client
extras