diff --git a/.gitignore b/.gitignore
index fcf292d66eda..5a832c31a5e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
.zip
.gz
.DS_Store
+._*
.target
.idea/
!.idea/icon.png
diff --git a/dolphinscheduler-dist/src/main/assembly/assembly-plugins.sh b/dolphinscheduler-dist/src/main/assembly/assembly-plugins.sh
index da85c23c19dc..2bb3b5ebf0a8 100755
--- a/dolphinscheduler-dist/src/main/assembly/assembly-plugins.sh
+++ b/dolphinscheduler-dist/src/main/assembly/assembly-plugins.sh
@@ -77,8 +77,8 @@ done
# create symbolic link for standalone-server
cd $BIN_DIR/standalone-server && ln -s ../tools/sql/sql sql
-# repack bin tar
+# repack bin tar (exclude macOS junk so extraction on Linux is clean)
BIN_TAR_FILE_NAME=$(basename $BIN_TAR_FILE)
-cd $DIST_DIR && tar -zcf $BIN_TAR_FILE_NAME apache-dolphinscheduler-*-bin
+cd $DIST_DIR && tar -zcf $BIN_TAR_FILE_NAME --exclude='._*' --exclude='.DS_Store' apache-dolphinscheduler-*-bin
echo "assembly-plugins.sh done"
diff --git a/pom.xml b/pom.xml
index 452a45bcff34..925525aba6da 100755
--- a/pom.xml
+++ b/pom.xml
@@ -797,6 +797,28 @@
maven-dependency-plugin
${maven-dependency-plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.1.0
+
+
+ clean-macos-junk
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
https://dolphinscheduler.apache.org