diff --git a/CHANGES.md b/CHANGES.md
index 4a734f7ed..0d0705d91 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -5,7 +5,7 @@ Release Notes.
8.7.0
------------------
#### Project
-
+* Extract dependency management to a bom.
#### Java Agent
* Supports modifying span attributes in async mode.
diff --git a/oap-server-bom-es7/pom.xml b/oap-server-bom-es7/pom.xml
new file mode 100644
index 000000000..cbf1a40e0
--- /dev/null
+++ b/oap-server-bom-es7/pom.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ apm
+ org.apache.skywalking
+ 8.7.0-SNAPSHOT
+
+ pom
+ 4.0.0
+ oap-server-bom-es7
+
+
+ 7.10.2
+
+
+
+
+
+ org.elasticsearch.client
+ elasticsearch-rest-high-level-client
+ ${elasticsearch.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.apache.skywalking
+ oap-server-bom
+ ${project.version}
+ pom
+ import
+
+
+
+
diff --git a/oap-server-bom/pom.xml b/oap-server-bom/pom.xml
new file mode 100644
index 000000000..69812c0a7
--- /dev/null
+++ b/oap-server-bom/pom.xml
@@ -0,0 +1,501 @@
+
+
+
+
+
+ apm
+ org.apache.skywalking
+ 8.7.0-SNAPSHOT
+
+ pom
+ 4.0.0
+ oap-server-bom
+
+
+ 1.7.30
+ 2.14.1
+ 5.2.3
+ 8.0
+ 3.14.9
+ 1.4.196
+ 2.10.5
+ 6.3.2
+ 3.5.7
+ 28.1-jre
+ 1.28
+ 3.13.0
+ 3.12.4
+ 1.11
+ 3.12.0
+ 1.4
+ 2.0.39.Final
+ 9.4.40.v20210413
+ 2.6
+ 12.0.1
+ 3.1.0
+ 2.9.1
+ 2.12.2
+ 2.12.2
+ 2.12.2
+ 1.4
+ 0.6.0
+ 1.8.0
+ 1.4.2
+ 4.3.0
+ 2.12.0
+ 2.18.0
+ 4.1.65.Final
+ 2.12.2
+ 4.7.1
+ 2.3.28
+ 3.25.0-GA
+ 0.10.3
+ 3.0.3
+ 2.4.8.Final
+ 1.9.4
+ 1.12.0
+ 42.2.18
+
+
+
+
+
+ org.slf4j
+ slf4j-api
+ ${slf4j.version}
+
+
+ org.slf4j
+ jcl-over-slf4j
+ ${slf4j.version}
+
+
+ org.slf4j
+ log4j-over-slf4j
+ ${slf4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-core
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-api
+ ${log4j.version}
+
+
+ com.graphql-java
+ graphql-java-tools
+ ${graphql-java-tools.version}
+
+
+ com.graphql-java
+ graphql-java
+ ${graphql-java.version}
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+ com.squareup.okhttp3
+ okhttp
+ ${okhttp.version}
+
+
+ com.h2database
+ h2
+ ${h2.version}
+
+
+ joda-time
+ joda-time
+ ${joda-time.version}
+
+
+ org.elasticsearch.client
+ elasticsearch-rest-high-level-client
+ ${elasticsearch.version}
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ ${zookeeper.version}
+
+
+ slf4j-api
+ org.slf4j
+
+
+ slf4j-log4j12
+ org.slf4j
+
+
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ com.google.j2objc
+ j2objc-annotations
+
+
+
+
+ org.yaml
+ snakeyaml
+ ${snakeyaml.version}
+
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ ${log4j.version}
+
+
+ org.apache.logging.log4j
+ log4j-core
+
+
+
+
+ io.grpc
+ grpc-core
+ ${grpc.version}
+
+
+ com.google.android
+ annotations
+
+
+
+
+ io.grpc
+ grpc-netty
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-protobuf
+ ${grpc.version}
+
+
+
+ com.google.protobuf
+ protobuf-java
+ ${protobuf-java.version}
+
+
+ com.google.protobuf
+ protobuf-java-util
+ ${protobuf-java-util.version}
+
+
+
+ io.grpc
+ grpc-stub
+ ${grpc.version}
+
+
+ io.netty
+ netty-tcnative-boringssl-static
+ ${netty-tcnative-boringssl-static.version}
+
+
+ io.grpc
+ grpc-testing
+ ${grpc.version}
+ test
+
+
+ org.mockito
+ mockito-core
+
+
+ junit
+ junit
+
+
+ io.grpc
+ grpc-core
+
+
+ io.grpc
+ grpc-stub
+
+
+
+
+ org.eclipse.jetty
+ jetty-server
+ ${jetty.version}
+
+
+ org.eclipse.jetty
+ jetty-servlet
+ ${jetty.version}
+
+
+ commons-dbcp
+ commons-dbcp
+ ${commons-dbcp.version}
+
+
+ commons-io
+ commons-io
+ ${commons-io.version}
+
+
+ io.kubernetes
+ client-java
+ ${kubernetes.version}
+
+
+ com.zaxxer
+ HikariCP
+ ${hikaricp.version}
+
+
+
+ io.zipkin.zipkin2
+ zipkin
+ ${zipkin.version}
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ ${jackson-core.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ ${jackson-annotations.version}
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson-databind.version}
+
+
+ commons-codec
+ commons-codec
+ ${commons-codec.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+ io.prometheus
+ simpleclient
+ ${simpleclient.version}
+
+
+ com.ctrip.framework.apollo
+ apollo-client
+ ${apollo.version}
+
+
+ com.alibaba.nacos
+ nacos-client
+ ${nacos.version}
+
+
+ org.mousio
+ etcd4j
+
+
+ netty-codec-dns
+ io.netty
+
+
+
+ netty-codec-dns
+ io.netty
+
+
+
+ netty-codec-http
+ io.netty
+
+
+
+ netty-handler
+ io.netty
+
+
+
+ netty-resolver-dns
+ io.netty
+
+
+
+ com.fasterxml.jackson.module
+ jackson-module-afterburner
+
+
+ ${etcd4j.version}
+
+
+
+ io.netty
+ netty-handler
+ ${netty.version}
+
+
+
+ io.netty
+ netty-resolver-dns
+ ${netty.version}
+
+
+
+ io.netty
+ netty-codec-dns
+ ${netty.version}
+
+
+
+ io.netty
+ netty-codec-http
+ ${netty.version}
+
+
+
+ com.fasterxml.jackson.module
+ jackson-module-afterburner
+ ${jackson-module-afterburner.version}
+
+
+
+
+ org.apache.curator
+ curator-x-discovery
+ ${curator.version}
+
+
+ com.google.guava
+ guava
+
+
+ org.slf4j
+ slf4j-api
+
+
+ log4j
+ log4j
+
+
+
+
+ org.apache.curator
+ curator-test
+ ${curator-test.version}
+
+
+ com.google.guava
+ guava
+
+
+ log4j
+ log4j
+
+
+ test
+
+
+
+ org.antlr
+ antlr4-runtime
+ ${antlr.version}
+
+
+ org.freemarker
+ freemarker
+ ${freemarker.version}
+
+
+ org.javassist
+ javassist
+ ${javaassist.version}
+
+
+ org.apache.commons
+ commons-text
+ ${commons-text.version}
+
+
+ io.vavr
+ vavr
+ ${vavr.version}
+
+
+ org.codehaus.groovy
+ groovy
+ ${groovy.version}
+
+
+ org.mvel
+ mvel2
+ ${mvel.version}
+
+
+
+ commons-beanutils
+ commons-beanutils
+ ${commons-beanutils.version}
+
+
+ commons-collections
+ commons-collections
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+
+ com.google.flatbuffers
+ flatbuffers-java
+ ${flatbuffers-java.version}
+
+
+
+ org.postgresql
+ postgresql
+ ${postgresql.version}
+
+
+
+
diff --git a/oap-server/analyzer/meter-analyzer/pom.xml b/oap-server/analyzer/meter-analyzer/pom.xml
index bc68cb941..05730ccb3 100644
--- a/oap-server/analyzer/meter-analyzer/pom.xml
+++ b/oap-server/analyzer/meter-analyzer/pom.xml
@@ -44,8 +44,7 @@
io.kubernetes
client-java
- ${kubernetes.version}
-
\ No newline at end of file
+
diff --git a/oap-server/oal-grammar/pom.xml b/oap-server/oal-grammar/pom.xml
index e267620cc..6f3cb0235 100755
--- a/oap-server/oal-grammar/pom.xml
+++ b/oap-server/oal-grammar/pom.xml
@@ -27,6 +27,10 @@
oal-grammar
+
+ 4.7.1
+
+
org.antlr
@@ -51,4 +55,4 @@
-
\ No newline at end of file
+
diff --git a/oap-server/pom.xml b/oap-server/pom.xml
index f4b8e0609..00d2f75eb 100755
--- a/oap-server/pom.xml
+++ b/oap-server/pom.xml
@@ -52,55 +52,12 @@
UTF-8
- 3.13.0
- 3.12.4
- 1.7.30
- 2.14.1
- 28.1-jre
- 1.28
- 5.2.3
- 8.0
- 3.5.7
- 2.0.39.Final
- 9.4.40.v20210413
- 1.4.196
- 1.4
- 2.6
- 6.3.2
- 2.10.5
- 12.0.1
- 3.1.0
- 2.9.1
- 3.14.9
- 2.12.2
- 2.12.2
- 2.12.2
- 1.11
- 3.12.0
- 1.4
- 0.6.0
- 1.8.0
- 1.4.2
- 0.30.0
- 4.3.0
- 2.12.0
- 2.18.0
- v3.2.3
- 4.1.65.Final
- 2.12.2
- 4.7.1
- 2.3.28
- 3.25.0-GA
- 0.10.3
- 3.0.3
- 2.4.8.Final
+ 0.30.0
+ v3.2.3
3.5
2.4.1
2.4.6.RELEASE
- 1.9.4
- 1.12.0
- 42.2.18
@@ -130,13 +87,6 @@
com.google.guava
guava
-
-
- net.bytebuddy
- byte-buddy
- ${bytebuddy.version}
- test
-
@@ -152,423 +102,11 @@
${project.version}
- org.slf4j
- slf4j-api
- ${slf4j.version}
-
-
- org.slf4j
- jcl-over-slf4j
- ${slf4j.version}
-
-
- org.slf4j
- log4j-over-slf4j
- ${slf4j.version}
-
-
- org.apache.logging.log4j
- log4j-core
- ${log4j.version}
-
-
- org.apache.logging.log4j
- log4j-api
- ${log4j.version}
-
-
- com.graphql-java
- graphql-java-tools
- ${graphql-java-tools.version}
-
-
- com.graphql-java
- graphql-java
- ${graphql-java.version}
-
-
- com.google.code.gson
- gson
- ${gson.version}
-
-
- com.squareup.okhttp3
- okhttp
- ${okhttp.version}
-
-
- com.h2database
- h2
- ${h2.version}
-
-
- joda-time
- joda-time
- ${joda-time.version}
-
-
- org.elasticsearch.client
- elasticsearch-rest-high-level-client
- ${elasticsearch.version}
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.apache.zookeeper
- zookeeper
- ${zookeeper.version}
-
-
- slf4j-api
- org.slf4j
-
-
- slf4j-log4j12
- org.slf4j
-
-
-
-
- com.google.guava
- guava
- ${guava.version}
-
-
- com.google.j2objc
- j2objc-annotations
-
-
-
-
- org.yaml
- snakeyaml
- ${snakeyaml.version}
-
-
- org.apache.logging.log4j
- log4j-slf4j-impl
- ${log4j.version}
-
-
- org.apache.logging.log4j
- log4j-core
-
-
-
-
- io.grpc
- grpc-core
- ${grpc.version}
-
-
- com.google.android
- annotations
-
-
-
-
- io.grpc
- grpc-netty
- ${grpc.version}
-
-
- io.grpc
- grpc-protobuf
- ${grpc.version}
-
-
-
- com.google.protobuf
- protobuf-java
- ${protobuf-java.version}
-
-
- com.google.protobuf
- protobuf-java-util
- ${protobuf-java-util.version}
-
-
-
- io.grpc
- grpc-stub
- ${grpc.version}
-
-
- io.netty
- netty-tcnative-boringssl-static
- ${netty-tcnative-boringssl-static.version}
-
-
- io.grpc
- grpc-testing
- ${grpc.version}
- test
-
-
- org.mockito
- mockito-core
-
-
- junit
- junit
-
-
- io.grpc
- grpc-core
-
-
- io.grpc
- grpc-stub
-
-
-
-
- org.eclipse.jetty
- jetty-server
- ${jetty.version}
-
-
- org.eclipse.jetty
- jetty-servlet
- ${jetty.version}
-
-
- commons-dbcp
- commons-dbcp
- ${commons-dbcp.version}
-
-
- commons-io
- commons-io
- ${commons-io.version}
-
-
- io.kubernetes
- client-java
- ${kubernetes.version}
-
-
- com.zaxxer
- HikariCP
- ${hikaricp.version}
-
-
-
- io.zipkin.zipkin2
- zipkin
- ${zipkin.version}
-
-
-
- com.fasterxml.jackson.core
- jackson-core
- ${jackson-core.version}
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- ${jackson-annotations.version}
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson-databind.version}
-
-
- commons-codec
- commons-codec
- ${commons-codec.version}
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
-
- io.prometheus
- simpleclient
- ${simpleclient.version}
-
-
- com.ctrip.framework.apollo
- apollo-client
- ${apollo.version}
-
-
- com.alibaba.nacos
- nacos-client
- ${nacos.version}
-
-
- org.mousio
- etcd4j
-
-
- netty-codec-dns
- io.netty
-
-
-
- netty-codec-dns
- io.netty
-
-
-
- netty-codec-http
- io.netty
-
-
-
- netty-handler
- io.netty
-
-
-
- netty-resolver-dns
- io.netty
-
-
-
- com.fasterxml.jackson.module
- jackson-module-afterburner
-
-
- ${etcd4j.version}
-
-
-
- io.netty
- netty-handler
- ${netty.version}
-
-
-
- io.netty
- netty-resolver-dns
- ${netty.version}
-
-
-
- io.netty
- netty-codec-dns
- ${netty.version}
-
-
-
- io.netty
- netty-codec-http
- ${netty.version}
-
-
-
- com.fasterxml.jackson.module
- jackson-module-afterburner
- ${jackson-module-afterburner.version}
-
-
-
-
- org.apache.curator
- curator-x-discovery
- ${curator.version}
-
-
- com.google.guava
- guava
-
-
- org.slf4j
- slf4j-api
-
-
- log4j
- log4j
-
-
-
-
- org.apache.curator
- curator-test
- ${curator-test.version}
-
-
- com.google.guava
- guava
-
-
- log4j
- log4j
-
-
- test
-
-
-
- org.antlr
- antlr4-runtime
- ${antlr.version}
-
-
- org.freemarker
- freemarker
- ${freemarker.version}
-
-
- org.javassist
- javassist
- ${javaassist.version}
-
-
- org.apache.commons
- commons-text
- ${commons-text.version}
-
-
- io.vavr
- vavr
- ${vavr.version}
-
-
- org.codehaus.groovy
- groovy
- ${groovy.version}
-
-
- org.mvel
- mvel2
- ${mvel.version}
-
-
-
- commons-beanutils
- commons-beanutils
- ${commons-beanutils.version}
-
-
- commons-collections
- commons-collections
-
-
- commons-logging
- commons-logging
-
-
-
-
-
- com.google.flatbuffers
- flatbuffers-java
- ${flatbuffers-java.version}
-
-
-
- org.postgresql
- postgresql
- ${postgresql.version}
+ org.apache.skywalking
+ oap-server-bom
+ ${project.version}
+ import
+ pom
diff --git a/oap-server/server-cluster-plugin/cluster-nacos-plugin/pom.xml b/oap-server/server-cluster-plugin/cluster-nacos-plugin/pom.xml
index bc3c111a2..a655befdc 100644
--- a/oap-server/server-cluster-plugin/cluster-nacos-plugin/pom.xml
+++ b/oap-server/server-cluster-plugin/cluster-nacos-plugin/pom.xml
@@ -26,6 +26,10 @@
cluster-nacos-plugin
+
+ 1.4.2
+
+
org.apache.skywalking
@@ -84,7 +88,7 @@
IfNotPresent
- nacos/nacos-server:${nacos.version}
+ nacos/nacos-server:${test.nacos.version}
cluster-nacos-plugin-integration-test-nacos
diff --git a/oap-server/server-configuration/configuration-nacos/pom.xml b/oap-server/server-configuration/configuration-nacos/pom.xml
index 816d0600c..f70878170 100644
--- a/oap-server/server-configuration/configuration-nacos/pom.xml
+++ b/oap-server/server-configuration/configuration-nacos/pom.xml
@@ -27,6 +27,10 @@
configuration-nacos
+
+ 1.4.2
+
+
org.apache.skywalking
@@ -60,7 +64,7 @@
IfNotPresent
- nacos/nacos-server:${nacos.version}
+ nacos/nacos-server:${test.nacos.version}
nacos-dynamic-configuration-integration-test-nacos
diff --git a/oap-server/server-library/library-client/pom.xml b/oap-server/server-library/library-client/pom.xml
index d76a2443e..a712bf6b6 100755
--- a/oap-server/server-library/library-client/pom.xml
+++ b/oap-server/server-library/library-client/pom.xml
@@ -28,6 +28,10 @@
library-client
jar
+
+ 6.3.2
+
+
org.apache.skywalking
@@ -89,7 +93,7 @@
- elastic/elasticsearch:${elasticsearch.version}
+ elastic/elasticsearch:${test.elasticsearch.version}
elastic-client-integration-test
diff --git a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
index 65dcb3c34..e368bce51 100644
--- a/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
+++ b/oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml
@@ -62,7 +62,6 @@
com.google.protobuf
protobuf-java-util
- ${protobuf-java-util.version}
test
diff --git a/oap-server/server-starter-es7/pom.xml b/oap-server/server-starter-es7/pom.xml
index 0e99b9c81..010fca557 100644
--- a/oap-server/server-starter-es7/pom.xml
+++ b/oap-server/server-starter-es7/pom.xml
@@ -29,10 +29,6 @@
A backend starter specially for ElasticSearch 7 storage
jar
-
- 7.10.2
-
-
org.apache.skywalking
@@ -58,6 +54,18 @@
+
+
+
+ org.apache.skywalking
+ oap-server-bom-es7
+ ${project.version}
+ pom
+ import
+
+
+
+
skywalking-oap
diff --git a/pom.xml b/pom.xml
index 5735d76ec..9788b61fe 100755
--- a/pom.xml
+++ b/pom.xml
@@ -34,6 +34,8 @@
apm-commons
apm-protocol
+ oap-server-bom
+ oap-server-bom-es7
pom