の続報ですが、
私もEclipseプラグインの初心者でしたが、プラグインプロジェクトを構成して、デバッグまでできるようになりました。ははは。
MavenCompilerPluginHandlerで、
maven-compiler-pluginで指定されているVMのバージョンにマッチするInstallされているVMに切り替えている模様。
MavenCompilerPluginHandler#getJREContainersMapメソッドでJavaRuntime#newJREContainerPath(IVMInstall vm) というメソッドでMapを作っているので、これはバグというか仕様かもしれません。newJREContainerPath(IExecutionEnvironment environment)は使われてないようです。
private Map<String, IClasspathEntry> getJREContainersMap() { Map<String, IClasspathEntry> jreContainers = new HashMap<String, IClasspathEntry>(); jreContainers.put( getJREVersion( JavaRuntime.getDefaultVMInstall() ), JavaRuntime.getDefaultJREContainerEntry() ); for ( IVMInstallType installType : JavaRuntime.getVMInstallTypes() ) { for ( IVMInstall install : installType.getVMInstalls() ) { String version = getJREVersion( install ); if ( !jreContainers.containsKey( version ) ) { jreContainers.put( version, JavaCore.newContainerEntry( JavaRuntime.newJREContainerPath( install ) ) ); } } } return jreContainers; }
そもそも、JREContainerPathを組み立て直さないといけない理由がわからないのですが、現状のJREContainerPathを維持するような処理にできないかなーと。時間があったら考えてみよう。