Of course yes. If you prefer that your Jeka code lies in a distinct project, create a Jeka project in a sibling folder and mention where is located the project to build.
...
@Override
protected void setup() { // project to build lies in a sibling folder.
Path projectPath = this.baseDir().resolve("../myProject");
java.getProject().setBaseDir(projectPath);
...
You can specify a built-in commandSet class to run. This way, compilation won't occur.
For example jeka -CommandClass=JkCommandSet
or jeka -CC=JkCommandSet scaffold#run java#"
.
Jeka uses the JDK it is running on to compile production or test code. If code must be build on a another JDK version, you can specify JDK path for different version. Just mention it as option, for example in your [JEKA HOME]/options.properties file.
jdk.6=/software/jdk6
jdk.7=/software/jdk7
jdk.9=/software/jdk9
...
This way, if one of your project source code is declared to be in a specific Java version, the relevant JDK version will be used automatically to compile it.
Jeka can use any JSR199 Java compiler to compile your Java code. Just set the compiler instance you need as :
import org.eclipse.jdt.internal.compiler.tool.EclipseCompiler;
@JkDefClasspath("org.eclipse.jdt.core.compiler:ecj:4.6.1")
public class Build extends JkCommandSet{
java.getProject()_
.getCompilation()
.getCompiler().setCompilerTool(new EclipseCompiler());
}
Just make your commandSet class implements dev.jeka.core.api.java.project.JkJavaIdeSupport.JkSupplier
.