Maven: use maven-annotations in kotlin-maven-plugin
This commit is contained in:
@@ -61,7 +61,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-plugin-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
<version>3.1</version>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
|
||||
+9
-16
@@ -22,6 +22,10 @@ import com.sampullara.cli.Args;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.plugin.logging.Log;
|
||||
import org.apache.maven.plugins.annotations.LifecyclePhase;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.plugins.annotations.Parameter;
|
||||
import org.apache.maven.plugins.annotations.ResolutionScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||
@@ -42,40 +46,29 @@ import static com.intellij.openapi.util.text.StringUtil.join;
|
||||
/**
|
||||
* Compiles kotlin sources
|
||||
*
|
||||
* @goal compile
|
||||
* @phase compile
|
||||
* @requiresDependencyResolution compile
|
||||
* @noinspection UnusedDeclaration
|
||||
*/
|
||||
@Mojo(name = "compile", defaultPhase = LifecyclePhase.COMPILE, requiresDependencyResolution = ResolutionScope.COMPILE)
|
||||
public class K2JVMCompileMojo extends KotlinCompileMojoBase<K2JVMCompilerArguments> {
|
||||
/**
|
||||
* The directories used to scan for annotation.xml files for Kotlin annotations
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
public List<String> annotationPaths;
|
||||
|
||||
/**
|
||||
* @parameter default-value="true"
|
||||
*/
|
||||
@Parameter(defaultValue = "true")
|
||||
public boolean scanForAnnotations;
|
||||
|
||||
/**
|
||||
* Project classpath.
|
||||
*
|
||||
* @parameter default-value="${project.compileClasspathElements}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.compileClasspathElements}", required = true, readonly = true)
|
||||
public List<String> classpath;
|
||||
|
||||
/**
|
||||
* Project test classpath.
|
||||
*
|
||||
* @parameter default-value="${project.testClasspathElements}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.testClasspathElements}", required = true, readonly = true)
|
||||
protected List<String> testClasspath;
|
||||
|
||||
@NotNull
|
||||
|
||||
+10
-29
@@ -22,6 +22,7 @@ import org.apache.maven.plugin.AbstractMojo;
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.plugin.MojoFailureException;
|
||||
import org.apache.maven.plugin.logging.Log;
|
||||
import org.apache.maven.plugins.annotations.Parameter;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.cli.common.CLICompiler;
|
||||
@@ -47,17 +48,14 @@ public abstract class KotlinCompileMojoBase<A extends CommonCompilerArguments> e
|
||||
|
||||
/**
|
||||
* The default source directories containing the sources to be compiled.
|
||||
*
|
||||
* @parameter default-value="${project.compileSourceRoots}"
|
||||
* @required
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.compileSourceRoots}", required = true)
|
||||
private List<String> defaultSourceDirs;
|
||||
|
||||
/**
|
||||
* The source directories containing the sources to be compiled.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
private List<String> sourceDirs;
|
||||
|
||||
public List<String> getSources() {
|
||||
@@ -67,58 +65,41 @@ public abstract class KotlinCompileMojoBase<A extends CommonCompilerArguments> e
|
||||
|
||||
/**
|
||||
* Suppress all warnings.
|
||||
*
|
||||
* @parameter default-value="false"
|
||||
*/
|
||||
@Parameter(defaultValue = "false")
|
||||
public boolean nowarn;
|
||||
|
||||
// TODO not sure why this doesn't work :(
|
||||
// * @parameter default-value="$(project.basedir}/src/main/resources"
|
||||
|
||||
/**
|
||||
* @parameter default-value="${project}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project}", required = true, readonly = true)
|
||||
public MavenProject project;
|
||||
|
||||
/**
|
||||
* The directory for compiled classes.
|
||||
*
|
||||
* @parameter default-value="${project.build.outputDirectory}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.build.outputDirectory}", required = true, readonly = true)
|
||||
public String output;
|
||||
|
||||
/**
|
||||
* The directory for compiled tests classes.
|
||||
*
|
||||
* @parameter default-value="${project.build.testOutputDirectory}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.build.testOutputDirectory}", required = true, readonly = true)
|
||||
public String testOutput;
|
||||
|
||||
/**
|
||||
* Kotlin compilation module, as alternative to source files or folders.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
public String module;
|
||||
|
||||
/**
|
||||
* Kotlin compilation module, as alternative to source files or folders (for tests).
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
public String testModule;
|
||||
|
||||
/**
|
||||
* Additional command line arguments for Kotlin compiler.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
public List<String> args;
|
||||
|
||||
protected final Log LOG = getLog();
|
||||
|
||||
+13
-17
@@ -18,6 +18,10 @@ package org.jetbrains.kotlin.maven;
|
||||
|
||||
import org.apache.maven.plugin.MojoExecutionException;
|
||||
import org.apache.maven.plugin.MojoFailureException;
|
||||
import org.apache.maven.plugins.annotations.LifecyclePhase;
|
||||
import org.apache.maven.plugins.annotations.Mojo;
|
||||
import org.apache.maven.plugins.annotations.Parameter;
|
||||
import org.apache.maven.plugins.annotations.ResolutionScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
|
||||
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
|
||||
@@ -27,18 +31,17 @@ import java.util.List;
|
||||
/**
|
||||
* Compiles Kotlin test sources
|
||||
*
|
||||
* @goal test-compile
|
||||
* @phase test-compile
|
||||
* @requiresDependencyResolution test
|
||||
* @noinspection UnusedDeclaration
|
||||
*/
|
||||
@Mojo(name = "test-compile",
|
||||
defaultPhase = LifecyclePhase.TEST_COMPILE,
|
||||
requiresDependencyResolution = ResolutionScope.TEST
|
||||
)
|
||||
public class KotlinTestCompileMojo extends K2JVMCompileMojo {
|
||||
/**
|
||||
* Flag to allow test compilation to be skipped.
|
||||
*
|
||||
* @parameter expression="${maven.test.skip}" default-value="false"
|
||||
* @noinspection UnusedDeclaration
|
||||
*/
|
||||
@Parameter(property = "maven.test.skip", defaultValue = "false")
|
||||
private boolean skip;
|
||||
|
||||
// TODO it would be nice to avoid using 2 injected fields for sources
|
||||
@@ -48,17 +51,14 @@ public class KotlinTestCompileMojo extends K2JVMCompileMojo {
|
||||
|
||||
/**
|
||||
* The default source directories containing the sources to be compiled.
|
||||
*
|
||||
* @parameter default-value="${project.testCompileSourceRoots}"
|
||||
* @required
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.testCompileSourceRoots}", required = true)
|
||||
private List<String> defaultSourceDirs;
|
||||
|
||||
/**
|
||||
* The source directories containing the sources to be compiled.
|
||||
*
|
||||
* @parameter
|
||||
*/
|
||||
@Parameter
|
||||
private List<String> sourceDirs;
|
||||
|
||||
@Override
|
||||
@@ -69,19 +69,15 @@ public class KotlinTestCompileMojo extends K2JVMCompileMojo {
|
||||
|
||||
/**
|
||||
* The source directories containing the sources to be compiled for tests.
|
||||
*
|
||||
* @parameter default-value="${project.testCompileSourceRoots}"
|
||||
* @required
|
||||
* @readonly
|
||||
*/
|
||||
@Parameter(defaultValue = "${project.testCompileSourceRoots}", required = true, readonly = true)
|
||||
private List<String> defaultSourceDir;
|
||||
|
||||
@Override
|
||||
public void execute() throws MojoExecutionException, MojoFailureException {
|
||||
if (skip) {
|
||||
getLog().info("Test compilation is skipped");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
super.execute();
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -97,8 +97,7 @@ public class KotlinTestJSCompilerMojo extends K2JSCompilerMojo {
|
||||
public void execute() throws MojoExecutionException, MojoFailureException {
|
||||
if (skip) {
|
||||
getLog().info("Test compilation is skipped");
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
super.execute();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user