alibaba / alibaba/transmittable-thread-local

使用 spring-boot loader 机制进行 fatjar 打包,以便支持更多依赖

Open
#405 1 comment 2 reactions 0 assignees View on GitHub
✨ feature 📐 design discussion t:v3 ✨
Dominant language
Java
Stars
8.3k
Forks
1.7k
PR merge metrics
No merged PRs in 30d

Description

使用 spring-boot loader + fatjar 模式打包有如下优势:

- 依赖无需shade,只需要打包到 BOOT-INF
- 无需配置 bootstrap classpath
- 依赖及不导出的类可以在独立的loader中加载,避免应用会意外访问
- 主代码中可以依赖 kotlin,简化代码并且可以对 Transformlet 提供更好的 dsl

```
ttl-fatjar.jar
`-- BOOT-INF/
| `-- lib/
| `-- dep1.jar
| `-- dep2.jar
| `-- classes/
| `--
`-- ttl/loader
`--
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed spring-boot loader and fatjar layout for ttl-fatjar.jar, including BOOT-INF/lib, BOOT-INF/classes, and ttl/loader. Determine how the current packaging would need to support these locations and the stated dependency-loading goals; done means the proposed artifact layout and supported dependencies are defined and verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, kotlin, spring-boot
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.