* Add script mvnd-auto to auto select native or pure java mvnd
* Move fallback logic into main entry script
1. rename native binary to 'mvnd-native-<os>-<arch>'
2. add environment switch MVND_ENTRY_FALLBACK, default 'true' enables
the fallback logic, set to 'false' to force execute the native mvnd.
3. rename mvnd.sh to mvnd
* change entry name on windows
* Add script mvnd-persist-native for moving the native image to the default entry path
* improve platform detect
* fix error on dash
* rollback default entry to the native image
* use MVND_CLIENT switch to control the selection of mvnd client
* improve comment docs as suggestion
* Fix core export provider
Since https://github.com/apache/maven/pull/616, the default
CoreExportProvider no longer uses the provided CoreExports,
but instead tries (and fails) to discover them itself.
This change fixes that by providing our own custom instance
of CoreExportProvider. This allows core extension to contribute
exported artifacts and exported packages again, like it used to
do before the Maven 4.x upgrade.
* Add integration tests for API-providing extensions
https://issues.apache.org/jira/browse/MNG-7586
* Remove CliMavenPluginManager which has the changed needed in alpha-3
* Align slf4j api with maven
* Make sure the invoker being called from IT reuses the settings from the invoker running the IT
* Fix IT when mrm is disabled
* Fix InvalidingPluginRealmCache
Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
* Use muti-release jar to fallback mvnd-client to original maven
The mvnd-client is built to a muti-release jar. The default version of
DefaultClient is compiled against the same target version as the
embedded maven (4.x, so JDK 1.8) which only invoke the MavenCli.main().
The java-11 version is the full qualified mvnd-client.
* update cmd scripts
* embedded maven now works under JDK 1.8
Build SimpleAppender for JDK 1.8 since it is the log appender only
for the embedded maven
Co-authored-by: Guillaume Nodet <gnodet@gmail.com>
There is wide spread misconception that in order to build a Maven project
the command is `mvn clean install`.
It would be better to promote the right way (in the vast majority of the cases)
to build a Maven project.
`mvnd verify` aligns with Maven documentation as well,
where the example command is `mvn verify`.
The implementation currently switches on the redirection when the daemon actually starts reading the System.in stream using InputStream.read() or InputStream.available().
The local repo and maven settings are both used while resolving core extensions,
which happens during daemon startup. Thus these two also need to be discriminating
properties, as the core extensions themselves are discriminating.
Event spies may want to read system properties, which will fail if they are reset
too early. This change makes the behavior consistent with regular Maven.