Javaコードを純粋なscalaに移植しようとしているので、この点で助けていただければ幸いです。
以下のコードは、最初にビジネス ロジックを Java コードに変換することによって機能します。ここでは、freemarker テンプレートを使用して、テンプレート ベースのコード生成を行っています。ファイルの作成後、Java comiler を使用してコードをコンパイルし、jar ファイルを作成します。このファイルは一時ディレクトリに保持されます。
現在、javax.tools.*
ランタイム コンパイルを提供するパッケージを使用しています。そのアプローチに相当する Scala は何ですか? freemarker テンプレートを使用して純粋な Scala コードを生成し、Scala コンパイルを実行して jar ファイルを作成したいと考えています。
以下は、これを実現するために使用しているサンプル Java コードです。
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
Iterable<? extends JavaFileObject> compilationUnits = Arrays.asList(javaFileObjects);
StringBuilder builder = new StringBuilder();
builder.append(service.getConfig().getProp("coreLib"));
builder.append(";" +result.getCodeContext().getOmClasspath());
builder.append(";" +jarBuilder.toString());
builder.append(";" +service.getConfig().getProp("tempCodeGen"));
String[] compileOptions = new String[]{"-d", result.getCodeContext().getOmClasspath(),"-cp",builder.toString()} ;
Iterable<String> compilationOptionss = Arrays.asList(compileOptions);
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
CompilationTask compilerTask = compiler.getTask(null, stdFileManager, diagnostics, compilationOptionss, null, compilationUnits) ;
boolean status = compilerTask.call();