ShreyeshArangath opened a new pull request, #2462:
URL: https://github.com/apache/auron/pull/2462
## What changes were proposed in this pull request?
Fixes #2460.
Three small additions that make `auron-build.sh` usable as a build step
inside another script, and on machines without network access:
- `--mvn <PATH>` builds with an already installed Maven instead of
`build/mvn`, which downloads Maven and so fails in an offline or airgapped
build. It accepts either a path or a command on `PATH`, and errors if it
resolves to neither.
- `--goal <GOAL>` sets the Maven goal. It defaults to `install`, so nothing
changes for existing callers, but a caller that only wants artifacts can run
`package` and leave the local repository alone.
- `--` ends option parsing, so everything after it reaches Maven unchanged.
#2227 fixed `-D` handling via `MVN_D_ARGS`, but `-P`, `-B` and long options
such as `--no-transfer-progress` are still either swallowed by the `break` in
the `-*` handler or rejected as an unknown option. The `--` arm sits alongside
the existing `-D` handling rather than replacing it, and is placed before the
`--*` arm so it is not caught as an unknown option.
This is independent of #2461 and the two can merge in either order.
## How was this patch tested?
Manually, with a stub Maven that echoes its arguments so the composed
command line is visible.
All three together:
```
$ bash auron-build.sh --release --mvn /tmp/stubmvn --goal package \
--sparkver 3.1 --scalaver 2.12 -- -Pceleborn-0.6 -B
--no-transfer-progress
STUB_MVN_INVOKED_WITH: clean package -DskipTests -Prelease -Pspark-3.1
-Pscala-2.12 -Pceleborn-0.6 -B --no-transfer-progress
```
The goal is `package` rather than `install`, and `-P`, `-B` and the long
option all arrive intact.
Also checked:
- Without `--goal` the command line still says `clean install`, so existing
callers are unaffected.
- `-DskipBuildNative` placed among the options still lands in `MVN_D_ARGS`
as before, so #2227 behaviour is preserved.
- `--mvn` resolves a bare command name off `PATH` as well as an explicit
path.
- `--mvn /nope/mvn` exits 1 with `ERROR: --mvn '/nope/mvn' is not an
executable or a command on PATH`.
- `--goal` with no argument exits 1 with a message naming the expected
values.
- An unknown long option such as `--bogus` is still rejected, so the new
`--` arm does not weaken that check.
--
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]