Use muti-release jar to fallback mvnd-client to original maven (#722)

* 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>
This commit is contained in:
James Z.M. Gao
2022-12-15 00:41:02 +08:00
committed by GitHub
parent 64828123f5
commit f8d047bdae
13 changed files with 283 additions and 80 deletions

View File

@@ -99,6 +99,29 @@
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>fallback</id>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<release>${maven-dist.required.jdk}</release>
<compileSourceRoots>
<root>${project.basedir}/src/main/java-fallback</root>
</compileSourceRoots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>

View File

@@ -1,45 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.mvndaemon.mvnd.syncontext;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
import org.eclipse.aether.internal.impl.synccontext.named.FileGAVNameMapper;
import org.eclipse.aether.internal.impl.synccontext.named.NameMapper;
import org.eclipse.aether.internal.impl.synccontext.named.NamedLockFactorySelectorSupport;
import org.eclipse.aether.named.NamedLockFactory;
import org.eclipse.aether.named.providers.FileLockNamedLockFactory;
import org.eclipse.sisu.Priority;
/**
* Mvnd selector implementation: it differs from
* {@link org.eclipse.aether.internal.impl.synccontext.named.SimpleNamedLockFactorySelector} only by default values.
*/
@Singleton
@Named
@Priority(10)
public final class DaemonNamedLockFactorySelector extends NamedLockFactorySelectorSupport {
@Inject
public DaemonNamedLockFactorySelector(
final Map<String, NamedLockFactory> factories, final Map<String, NameMapper> nameMappers) {
super(factories, FileLockNamedLockFactory.NAME, nameMappers, FileGAVNameMapper.NAME);
}
}