diff --git a/mllib-dal/pom.xml b/mllib-dal/pom.xml
index d37ff879c..d2594e4f7 100644
--- a/mllib-dal/pom.xml
+++ b/mllib-dal/pom.xml
@@ -157,16 +157,6 @@
3.0.0
3.0.8
-
-
-
-
-
-
-
-
-
-
@@ -175,16 +165,6 @@
3.0.1
3.0.8
-
-
-
-
-
-
-
-
-
-
@@ -193,16 +173,6 @@
3.0.2
3.0.8
-
-
-
-
-
-
-
-
-
-
@@ -211,46 +181,63 @@
3.1.1
3.2.3
-
-
-
-
-
-
-
-
-
-
-
-
- org.scala-tools
- maven-scala-plugin
- 2.15.2
-
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.2.0
+
- compile
-
- compile
-
-
-
- **/*.java
- **/spark/**
- **/spark-${spark.version}/**
-
-
+ add-source
+ generate-sources
+
+ add-source
+
+
+
+ src/spark-${spark.version}/main/java
+ src/spark-${spark.version}/main/scala
+
+
- testCompile
-
- testCompile
-
+ add-test-source
+ generate-sources
+
+ add-test-source
+
+
+
+ src/spark-${spark.version}/test/scala
+
+
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+ 4.4.0
+
+
+ scala-compile-first
+ process-resources
+
+ add-source
+ compile
+
+
+
+ scala-test-compile
+ process-test-resources
+
+ testCompile
+
+
${scala.version}
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/classification/NaiveBayes.scala b/mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/classification/NaiveBayes.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/classification/NaiveBayes.scala
rename to mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/classification/NaiveBayes.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/feature/PCA.scala b/mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/feature/PCA.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/feature/PCA.scala
rename to mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/feature/PCA.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/recommendation/ALS.scala b/mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/recommendation/ALS.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.0/ml/recommendation/ALS.scala
rename to mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/ml/recommendation/ALS.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.0/mllib/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.0/mllib/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.0/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/feature/PCA.scala b/mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/feature/PCA.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/feature/PCA.scala
rename to mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/feature/PCA.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/recommendation/ALS.scala b/mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/recommendation/ALS.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.1/ml/recommendation/ALS.scala
rename to mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/ml/recommendation/ALS.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.1/mllib/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.1/mllib/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.1/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/feature/PCA.scala b/mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/feature/PCA.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/feature/PCA.scala
rename to mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/feature/PCA.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/recommendation/ALS.scala b/mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/recommendation/ALS.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.2/ml/recommendation/ALS.scala
rename to mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/ml/recommendation/ALS.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.0.2/mllib/clustering/KMeans.scala b/mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.0.2/mllib/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.0.2/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/clustering/KMeans.scala b/mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/clustering/KMeans.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/feature/PCA.scala b/mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/feature/PCA.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/feature/PCA.scala
rename to mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/feature/PCA.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/recommendation/ALS.scala b/mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/recommendation/ALS.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.1.1/ml/recommendation/ALS.scala
rename to mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/ml/recommendation/ALS.scala
diff --git a/mllib-dal/src/main/scala/org/apache/spark-3.1.1/mllib/clustering/KMeans.scala b/mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/mllib/clustering/KMeans.scala
similarity index 100%
rename from mllib-dal/src/main/scala/org/apache/spark-3.1.1/mllib/clustering/KMeans.scala
rename to mllib-dal/src/spark-3.1.1/main/scala/org/apache/spark/mllib/clustering/KMeans.scala