This is an automated email from the ASF dual-hosted git repository.
huxing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 3fc6909 Add dependencies check script (#3941)
3fc6909 is described below
commit 3fc69095cfa6d1acb604260f843627bc61abf6a3
Author: Huang YunKun <[email protected]>
AuthorDate: Wed May 22 10:57:19 2019 +0800
Add dependencies check script (#3941)
* add plugin to do dependencies check
* remove third-party properties file
* polish config
* polish config
* use missing info in bash
---
.gitignore | 5 ++-
licenseCheck.sh | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
pom.xml | 35 +++++++++++++++++++++
3 files changed, 135 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 0938f78..8989935 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,4 +31,7 @@ Thumbs.db
*.orig
# flatten ignore
-.flattened-pom.xml
\ No newline at end of file
+.flattened-pom.xml
+
+# license check result
+license-list.txt
\ No newline at end of file
diff --git a/licenseCheck.sh b/licenseCheck.sh
new file mode 100755
index 0000000..9992f10
--- /dev/null
+++ b/licenseCheck.sh
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+APPEND_ARG=""
+FOLDER="./"
+LINE_FLAG="=============================================="
+TARGET_FILE="./license-list.txt"
+
+red=`tput setaf 1`
+green=`tput setaf 2`
+reset=`tput sgr0`
+
+
+if [ -n "$1" ]; then
+ echo "checking module $1"
+ APPEND_ARG="-f $1"
+ FOLDER="$1"
+else
+ echo "checking whole project"
+fi
+
+echo "Running command: ./mvnw clean package -DskipTests=true -PlicenseCheck
$APPEND_ARG"
+
+./mvnw clean package -DskipTests=true -PlicenseCheck $APPEND_ARG
+
+status=$?
+if [ $status -eq 0 ]; then
+ echo "mvn command exec success"
+else
+ echo "${red}mvn command exec fail${reset}"
+ exit 1
+fi
+
+
+#contact and generate license file
+rm -rf $TARGET_FILE
+LICENSE_FILES=`find $FOLDER -type f -name "THIRD-PARTY.txt"|grep
generated-sources`
+
+echo "Find license files:"
+echo "$LICENSE_FILES"
+
+for i in $LICENSE_FILES
+ do
+ echo "$LINE_FLAG" >> $TARGET_FILE
+ echo $i >> $TARGET_FILE
+ cat $i >> $TARGET_FILE
+ done
+
+echo "license files generated at $TARGET_FILE"
+
+#fix missing license dependencies
+missingLicense=(
+ "(Unknown license) jsr173_api:(Apache License, Version 2.0) jsr173_api"
+ "(Unknown license) \"Java Concurrency in Practice\" book annotations:(BEA
licensed) \"Java Concurrency in Practice\" book annotations"
+ "(Unknown license) Java Portlet Specification V2.0:(Apache License,
Version 2.0) Java Portlet Specification V2.0"
+)
+
+for i in "${missingLicense[@]}"; do
+ search=`echo $i |awk -F: '{print $1}'`
+ replace=`echo $i |awk -F: '{print $2}'`
+ sed -i -e 's/'"$search"'/'"$replace"'/g' $TARGET_FILE
+done
+
+check_unknown_license=`cat $TARGET_FILE | grep "Unknown license"`
+
+#checking unknown license
+if grep -q "Unknown license" $TARGET_FILE
+then
+ echo "${red}Find unknown license${reset}"
+ echo "$check_unknown_license"
+ exit 1
+fi
+
+allowLicense=(
+ "CDDL"
+ "Apache"
+ "Common Development and Distribution License"
+ "Eclipse Public License"
+ "MIT"
+ "The 3-Clause BSD License"
+ "Public domain"
+)
+
+#filter allow license
+license_need_check=`cat $TARGET_FILE | grep -v
"generated-sources/license/THIRD-PARTY.txt" | grep -v "third-party
dependencies" | grep -v $LINE_FLAG`
+
+for i in "${allowLicense[@]}"; do
+ license_need_check=`echo "$license_need_check"|grep -vi "$i"`
+done
+
+if test -z "$license_need_check"
+then
+ echo "${green}All dependencies license looks good${reset}"
+else
+ echo "${red}Please check below license${reset}"
+ echo "$license_need_check"
+fi
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a1f7b56..e9a1661 100644
--- a/pom.xml
+++ b/pom.xml
@@ -302,6 +302,41 @@
</plugins>
</build>
</profile>
+ <profile>
+ <id>licenseCheck</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>license-maven-plugin</artifactId>
+ <version>1.20</version>
+ <executions>
+ <execution>
+ <id>license-check</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>add-third-party</goal>
+ </goals>
+ <configuration>
+ <includeOptional>false</includeOptional>
+ <useMissingFile>false</useMissingFile>
+ <failOnMissing>false</failOnMissing>
+ <licenseMerges>
+ <licenseMerge>Apache License, Version
2.0|The Apache Software License, Version
+ 2.0|ASF 2.0|Apache
2|Apache-2.0|Apache 2.0 License|Apache 2.0|Apache License v2.0|Apache License
2.0|The Apache License, Version 2.0|The Apache Software License, Version 2.0
+ </licenseMerge>
+ <licenseMerge>The MIT License|MIT
License</licenseMerge>
+ <licenseMerge>The 3-Clause BSD
License|New BSD License|3-Clause BSD
+ License|BSD|3-Clause BSD
License|The New BSD License
+ </licenseMerge>
+ </licenseMerges>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
<build>