Yicong-Huang opened a new issue, #6096:
URL: https://github.com/apache/texera/issues/6096
### What happened?
`bin/local-dev.sh up --build` reports a successful build (`sbt: dist done`,
`artifacts unzipped`), but the seven JVM services never come up. Two
independent defects in the CLI-only sbt knobs added to `build_all()` in
`bin/local-dev/main.sh` (#6087) each make `sbt <svc>/dist` produce a dist that
cannot run:
1. `set every (Compile / doc / sources) := Seq.empty` — `set every` ignores
the scope you write and sets the shared `sources` key in *every* scope,
including `Compile / sources`. Compilation input becomes empty, no main class
is discovered, and sbt-native-packager prints `You have no main class in your
project. No start script will be generated.` The dist zip ships no
`bin/<service>` launcher, so local-dev reports `launcher missing at ...`.
2. `-Dsbt.pipelining=true` — with pipelining, inter-project dependencies are
consumed as early-output signature jars, and the dist then omits the real
dependency jars (`dao`, `auth`, `config`, `resource`) from `lib/`. Each service
starts and immediately dies with `NoClassDefFoundError` on a sibling-module
class (e.g. `org/apache/texera/dao/SqlServer$`).
Both were masked as long as a prior good dist existed on disk (the build was
skipped by the `all_launchers_present` gate); once a rebuild actually fires,
they surface.
### How to reproduce?
From a clean checkout with the infra up:
1. `bin/local-dev.sh up --build`
2. All services report `launcher missing` (defect 1); with defect 1 removed,
they instead crash at startup with `NoClassDefFoundError:
org/apache/texera/dao/SqlServer$` (defect 2).
Minimal isolation (single variable each):
- `sbt 'set every (Compile / doc / sources) := Seq.empty'
ConfigService/dist` → `Compile / sources` = 0 files, `discoveredMainClasses`
empty, zip has no `bin/`. Without the flag, `bin/config-service` is generated.
- `sbt -Dsbt.pipelining=true ConfigService/dist` → `lib/` is missing the
`dao/auth/config/resource` jars. Without the flag, `dao` (289 KB, contains
`SqlServer$`) is present.
### Version/Branch
1.3.0-incubating-SNAPSHOT (main)
### Commit Hash
Introduced in #6087 (5786a10a7); both flags present at
`bin/local-dev/main.sh` `build_all()` on current main.
### Relevant log output
```
[warn] You have no main class in your project. No start script will be
generated.
✗ config-service: launcher missing at
./target/config-service-1.3.0-incubating-SNAPSHOT/bin/config-service
Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/texera/dao/SqlServer$
at
org.apache.texera.service.ConfigService.initialize(ConfigService.scala:48)
Caused by: java.lang.ClassNotFoundException: org.apache.texera.dao.SqlServer$
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]