Files
starRiverProperty/maven-ninca-common-component-organization/install-libs.sh
反编译工作区 18810ef9c6 feat: add component-organization decompiled Maven module
- Reactor POM with 4 sub-modules (interface/data/service/web)
- all-lib/ with 255 extracted JARs from original fat JAR
- .m2-isolated/ repo with 252 installed JARs
- interface module: BUILD SUCCESS (325 classes)
- data module: BUILD SUCCESS (120 classes)
- service module: 200 type errors (CFR decompilation artifacts)
- install-libs.sh for isolated repo setup
- Feign fallback inner classes separated
2026-05-05 22:36:52 +08:00

100 lines
4.2 KiB
Bash

#!/bin/bash
# Install all 255 JARs from original fat JAR to isolated .m2 repo
# Usage: bash install-libs.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ALL_LIB="$SCRIPT_DIR/all-lib"
LOCAL_REPO="$SCRIPT_DIR/.m2-isolated/repository"
mkdir -p "$LOCAL_REPO"
echo "Installing JARs to $LOCAL_REPO"
count=0
for f in "$ALL_LIB"/*.jar; do
name=$(basename "$f" .jar)
# Determine group:artifact:version based on filename pattern
case "$name" in
spring-boot-starter-*) g="org.springframework.boot"; a="$name"; v="${name#spring-boot-starter-}" ;;
spring-cloud-starter-*) g="org.springframework.cloud"; a="$name"; v="" ;;
spring-*) g="org.springframework"; a="$name"; v="" ;;
jackson-*) g="com.fasterxml.jackson.core"; a="$name"; v="" ;;
feign-*) g="io.github.openfeign"; a="$name"; v="" ;;
ribbon-*|hystrix-*|servo-*|archaius-*|netflix-*|rxjava*|rxnetty*) g="com.netflix"; a="$name"; v="" ;;
cloudwalk-*) g="cn.cloudwalk.cloud"; a="$name"; v="" ;;
cwos-*) g="cn.cloudwalk.cwos"; a="$name"; v="" ;;
davinci-*) g="cn.cloudwalk.intelligent"; a="$name"; v="" ;;
ninca-*) g="cn.cloudwalk.ninca"; a="$name"; v="" ;;
ai-cloud-task-*) g="cn.cloudwalk.task"; a="$name"; v="" ;;
mybatis-*) g="org.mybatis"; a="$name"; v="" ;;
pagehelper-*) g="com.github.pagehelper"; a="$name"; v="" ;;
lombok-*) g="org.projectlombok"; a="$name"; v="" ;;
fastjson-*) g="com.alibaba"; a="$name"; v="" ;;
hutool-*) g="cn.hutool"; a="$name"; v="" ;;
poi-*) g="org.apache.poi"; a="$name"; v="" ;;
quartz-*) g="org.quartz-scheduler"; a="$name"; v="" ;;
okhttp*|okio*) g="com.squareup.okhttp3"; a="$name"; v="" ;;
httpclient*|httpcore*) g="org.apache.httpcomponents"; a="$name"; v="" ;;
commons-*) g="org.apache.commons"; a="$name"; v="" ;;
tomcat-*) g="org.apache.tomcat"; a="$name"; v="" ;;
slf4j-*) g="org.slf4j"; a="$name"; v="" ;;
logback-*) g="ch.qos.logback"; a="$name"; v="" ;;
jackson-*) g="com.fasterxml.jackson.core"; a="$name"; v="" ;;
zookeeper-*|curator-*) g="org.apache.zookeeper"; a="$name"; v="" ;;
kafka-*) g="org.apache.kafka"; a="$name"; v="" ;;
consul-*) g="com.ecwid.consul"; a="$name"; v="" ;;
dubbo-*) g="com.alibaba"; a="$name"; v="" ;;
druid-*) g="com.alibaba"; a="$name"; v="" ;;
jedis-*) g="redis.clients"; a="$name"; v="" ;;
mysql-*) g="mysql"; a="$name"; v="" ;;
gson-*) g="com.google.code.gson"; a="$name"; v="" ;;
guava-*) g="com.google.guava"; a="$name"; v="" ;;
opencv-*|javacpp*) g="org.bytedeco"; a="$name"; v="" ;;
springside-*) g="org.springside"; a="$name"; v="" ;;
zip4j-*) g="net.lingala.zip4j"; a="$name"; v="" ;;
jasypt-*) g="org.jasypt"; a="$name"; v="" ;;
opencsv-*) g="net.sf.opencsv"; a="$name"; v="" ;;
maven-*) g="org.apache.maven"; a="$name"; v="" ;;
plexus-*) g="org.codehaus.plexus"; a="$name"; v="" ;;
reflections-*) g="org.reflections"; a="$name"; v="" ;;
thumbnailator-*) g="net.coobird"; a="$name"; v="" ;;
snakeyaml-*) g="org.yaml"; a="$name"; v="" ;;
hibernate-*) g="org.hibernate"; a="$name"; v="" ;;
validation-api*) g="javax.validation"; a="$name"; v="" ;;
javax.inject*) g="javax.inject"; a="$name"; v="" ;;
servlet-api*|javax.servlet*) g="javax.servlet"; a="$name"; v="" ;;
joda-time*) g="joda-time"; a="$name"; v="" ;;
jcl-over-slf4j*|jul-to-slf4j*|log4j-over-slf4j*) g="org.slf4j"; a="$name"; v="" ;;
log4j*) g="log4j"; a="$name"; v="" ;;
*) g="lib.ext"; a="$name"; v="1.0" ;;
esac
# Skip opencv/javacpp (native)
echo "$name" | grep -q 'opencv\|javacpp' && continue
# Determine version
if [ -z "$v" ]; then
v=$(echo "$name" | grep -oP '\d[\d.]*.*' || echo "1.0")
a=$(echo "$name" | sed 's/-[0-9].*//')
fi
# Build artifact directory
dir="$LOCAL_REPO/$(echo $g | tr '.' '/')/$a/$v"
mkdir -p "$dir"
cp "$f" "$dir/$a-$v.jar"
# Generate minimal pom
cat > "$dir/$a-$v.pom" << POMEOF
<?xml version="1.0"?>
<project><modelVersion>4.0.0</modelVersion>
<groupId>$g</groupId><artifactId>$a</artifactId><version>$v</version>
</project>
POMEOF
count=$((count + 1))
if [ $((count % 50)) -eq 0 ]; then echo " $count/255"; fi
done
echo "Installed $count JARs to $LOCAL_REPO"