mirror of
https://hub.spigotmc.org/stash/scm/spigot/buildtools.git
synced 2025-08-05 16:59:05 +00:00
Dynamically define Java versions
This commit is contained in:
parent
65e6215c5b
commit
c6774a7707
3 changed files with 35 additions and 28 deletions
|
@ -22,7 +22,7 @@ public class Bootstrap
|
||||||
System.err.println( "*** WARNING *** You may use java -version to double check your Java version." );
|
System.err.println( "*** WARNING *** You may use java -version to double check your Java version." );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( javaVersion == JavaVersion.UNKNOWN )
|
if ( javaVersion.isUnknown() )
|
||||||
{
|
{
|
||||||
System.err.println( "*** WARNING *** Unsupported Java detected (" + System.getProperty( "java.class.version" ) + "). BuildTools has only been tested up to Java 11. Use of development Java version is not supported." );
|
System.err.println( "*** WARNING *** Unsupported Java detected (" + System.getProperty( "java.class.version" ) + "). BuildTools has only been tested up to Java 11. Use of development Java version is not supported." );
|
||||||
System.err.println( "*** WARNING *** You may use java -version to double check your Java version." );
|
System.err.println( "*** WARNING *** You may use java -version to double check your Java version." );
|
||||||
|
|
|
@ -305,12 +305,6 @@ public class Builder
|
||||||
JavaVersion minVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[0] );
|
JavaVersion minVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[0] );
|
||||||
JavaVersion maxVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[1] );
|
JavaVersion maxVersion = JavaVersion.getByVersion( buildInfo.getJavaVersions()[1] );
|
||||||
|
|
||||||
if ( minVersion == JavaVersion.UNKNOWN || maxVersion == JavaVersion.UNKNOWN )
|
|
||||||
{
|
|
||||||
System.err.println( "*** This BuildTools doesn't know how to use Java versions " + JavaVersion.printVersions( buildInfo.getJavaVersions() ) + ", please update" );
|
|
||||||
System.exit( 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( curVersion.getVersion() < minVersion.getVersion() || curVersion.getVersion() > maxVersion.getVersion() )
|
if ( curVersion.getVersion() < minVersion.getVersion() || curVersion.getVersion() > maxVersion.getVersion() )
|
||||||
{
|
{
|
||||||
System.err.println( "*** The version you have requested to build requires Java versions between " + JavaVersion.printVersions( buildInfo.getJavaVersions() ) + ", but you are using " + curVersion );
|
System.err.println( "*** The version you have requested to build requires Java versions between " + JavaVersion.printVersions( buildInfo.getJavaVersions() ) + ", but you are using " + curVersion );
|
||||||
|
|
|
@ -5,39 +5,52 @@ import java.util.Map;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public enum JavaVersion
|
public class JavaVersion
|
||||||
{
|
{
|
||||||
|
|
||||||
UNKNOWN( -1 ),
|
|
||||||
JAVA_5( 49 ),
|
|
||||||
JAVA_6( 50 ),
|
|
||||||
JAVA_7( 51 ),
|
|
||||||
JAVA_8( 52 ),
|
|
||||||
JAVA_9( 53 ),
|
|
||||||
JAVA_10( 54 ),
|
|
||||||
JAVA_11( 55 );
|
|
||||||
|
|
||||||
private final int version;
|
|
||||||
|
|
||||||
private JavaVersion(int version)
|
|
||||||
{
|
|
||||||
this.version = version;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static final Map<Integer, JavaVersion> byVersion = new HashMap<Integer, JavaVersion>();
|
private static final Map<Integer, JavaVersion> byVersion = new HashMap<Integer, JavaVersion>();
|
||||||
|
//
|
||||||
|
public static final JavaVersion JAVA_5 = new JavaVersion( "Java 5", 49 );
|
||||||
|
public static final JavaVersion JAVA_6 = new JavaVersion( "Java 6", 50 );
|
||||||
|
public static final JavaVersion JAVA_7 = new JavaVersion( "Java 7", 51 );
|
||||||
|
public static final JavaVersion JAVA_8 = new JavaVersion( "Java 8", 52 );
|
||||||
|
public static final JavaVersion JAVA_9 = new JavaVersion( "Java 9", 53 );
|
||||||
|
public static final JavaVersion JAVA_10 = new JavaVersion( "Java 10", 54 );
|
||||||
|
public static final JavaVersion JAVA_11 = new JavaVersion( "Java 11", 55 );
|
||||||
|
//
|
||||||
|
private final String name;
|
||||||
|
private final int version;
|
||||||
|
private final boolean unknown;
|
||||||
|
|
||||||
static
|
private JavaVersion(String name, int version)
|
||||||
{
|
{
|
||||||
for ( JavaVersion version : values() )
|
this( name, version, false );
|
||||||
{
|
|
||||||
|
|
||||||
byVersion.put( version.version, version );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private JavaVersion(String name, int version, boolean unknown)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
this.version = version;
|
||||||
|
this.unknown = unknown;
|
||||||
|
|
||||||
|
byVersion.put( version, this );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString()
|
||||||
|
{
|
||||||
|
return getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JavaVersion getByVersion(int version)
|
public static JavaVersion getByVersion(int version)
|
||||||
{
|
{
|
||||||
return byVersion.containsKey( version ) ? byVersion.get( version ) : JavaVersion.UNKNOWN;
|
JavaVersion java = byVersion.get( version );
|
||||||
|
if ( java == null )
|
||||||
|
{
|
||||||
|
java = new JavaVersion( "Java " + ( version - 44 ) + "*", version, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
return java;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JavaVersion getCurrentVersion()
|
public static JavaVersion getCurrentVersion()
|
||||||
|
@ -53,7 +66,7 @@ public enum JavaVersion
|
||||||
for ( int v : versions )
|
for ( int v : versions )
|
||||||
{
|
{
|
||||||
JavaVersion found = getByVersion( v );
|
JavaVersion found = getByVersion( v );
|
||||||
sb.append( found == JavaVersion.UNKNOWN ? v : found );
|
sb.append( found );
|
||||||
sb.append( ", " );
|
sb.append( ", " );
|
||||||
}
|
}
|
||||||
sb.setLength( sb.length() - 2 );
|
sb.setLength( sb.length() - 2 );
|
||||||
|
|
Loading…
Add table
Reference in a new issue