Compare commits
2 commits
b2574279eb
...
8b02e1e45a
Author | SHA1 | Date | |
---|---|---|---|
8b02e1e45a | |||
b26240df76 |
14 changed files with 179 additions and 173 deletions
15
.github/workflows/bld.yml
vendored
15
.github/workflows/bld.yml
vendored
|
@ -22,17 +22,12 @@ jobs:
|
||||||
distribution: "zulu"
|
distribution: "zulu"
|
||||||
java-version: ${{ matrix.java-version }}
|
java-version: ${{ matrix.java-version }}
|
||||||
|
|
||||||
- name: Grant execute permission for bld
|
- name: Download dependencies
|
||||||
run: chmod +x bld
|
|
||||||
|
|
||||||
- name: Download the dependencies
|
|
||||||
run: ./bld download
|
run: ./bld download
|
||||||
|
|
||||||
- name: Download the examples dependencies
|
- name: Download dependencies [examples]
|
||||||
run: |
|
working-directory: examples
|
||||||
cd examples
|
run: ./bld download
|
||||||
chmod +x bld
|
|
||||||
./bld download
|
|
||||||
|
|
||||||
- name: Run tests with bld
|
- name: Run tests
|
||||||
run: ./bld compile test
|
run: ./bld compile test
|
||||||
|
|
4
.idea/libraries/bld.xml
generated
4
.idea/libraries/bld.xml
generated
|
@ -2,12 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1-sources.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
|
@ -9,7 +9,7 @@
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.9.1.jar",
|
"${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,3 +45,7 @@ public void detektBaseline() throws ExitStatusException, IOException, Interrupte
|
||||||
- [View Examples Project](https://github.com/rife2/bld-detekt/tree/main/examples)
|
- [View Examples Project](https://github.com/rife2/bld-detekt/tree/main/examples)
|
||||||
|
|
||||||
Please check the [DetektOperation documentation](https://rife2.github.io/bld-detekt/rife/bld/extension/DetektOperation.html#method-summary) for all available configuration options.
|
Please check the [DetektOperation documentation](https://rife2.github.io/bld-detekt/rife/bld/extension/DetektOperation.html#method-summary) for all available configuration options.
|
||||||
|
|
||||||
|
## Template Project
|
||||||
|
|
||||||
|
There is also a [Kotlin Template Project](https://github.com/rife2/kotlin-bld-example) with support for [Dokka](https://github.com/rife2/bld-dokka) and the Detekt extensions.
|
||||||
|
|
4
examples/.idea/libraries/bld.xml
generated
4
examples/.idea/libraries/bld.xml
generated
|
@ -2,12 +2,12 @@
|
||||||
<library name="bld">
|
<library name="bld">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="file://$PROJECT_DIR$/lib/bld" />
|
<root url="file://$PROJECT_DIR$/lib/bld" />
|
||||||
<root url="jar://$USER_HOME$/.bld/dist/bld-1.9.1-sources.jar!/" />
|
<root url="jar://$USER_HOME$/.bld/dist/bld-2.0.0-SNAPSHOT-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
<excluded>
|
<excluded>
|
||||||
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
<root url="jar://$PROJECT_DIR$/lib/bld/bld-wrapper.jar!/" />
|
||||||
|
|
2
examples/.vscode/settings.json
vendored
2
examples/.vscode/settings.json
vendored
|
@ -9,7 +9,7 @@
|
||||||
],
|
],
|
||||||
"java.configuration.updateBuildConfiguration": "automatic",
|
"java.configuration.updateBuildConfiguration": "automatic",
|
||||||
"java.project.referencedLibraries": [
|
"java.project.referencedLibraries": [
|
||||||
"${HOME}/.bld/dist/bld-1.9.1.jar",
|
"${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar",
|
||||||
"lib/**/*.jar"
|
"lib/**/*.jar"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -5,4 +5,4 @@ bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.5-SNAPSHOT
|
||||||
bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.0-SNAPSHOT
|
bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.0-SNAPSHOT
|
||||||
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=1.9.1
|
bld.version=2.0.0-SNAPSHOT
|
||||||
|
|
|
@ -36,8 +36,8 @@ public class ExampleBuild extends Project {
|
||||||
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin));
|
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin));
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin))
|
.include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin))
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2)));
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3)));
|
||||||
|
|
||||||
// Include the Kotlin source directory when creating or publishing sources Java Archives
|
// Include the Kotlin source directory when creating or publishing sources Java Archives
|
||||||
jarSourcesOperation().sourceDirectories(new File(srcMainDirectory(), "kotlin"));
|
jarSourcesOperation().sourceDirectories(new File(srcMainDirectory(), "kotlin"));
|
||||||
|
@ -45,21 +45,21 @@ public class ExampleBuild extends Project {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// Enable detailed logging
|
// Enable detailed logging
|
||||||
// var level = Level.ALL;
|
// var level = Level.ALL;
|
||||||
// var logger = Logger.getLogger("rife.bld.extension");
|
// var logger = Logger.getLogger("rife.bld.extension");
|
||||||
// var consoleHandler = new ConsoleHandler();
|
// var consoleHandler = new ConsoleHandler();
|
||||||
|
//
|
||||||
// consoleHandler.setLevel(level);
|
// consoleHandler.setLevel(level);
|
||||||
// logger.addHandler(consoleHandler);
|
// logger.addHandler(consoleHandler);
|
||||||
// logger.setLevel(level);
|
// logger.setLevel(level);
|
||||||
// logger.setUseParentHandlers(false);
|
// logger.setUseParentHandlers(false);
|
||||||
|
|
||||||
new ExampleBuild().start(args);
|
new ExampleBuild().start(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BuildCommand(summary = "Compiles the Kotlin project")
|
@BuildCommand(summary = "Compiles the Kotlin project")
|
||||||
@Override
|
@Override
|
||||||
public void compile() throws IOException {
|
public void compile() throws Exception {
|
||||||
new CompileKotlinOperation()
|
new CompileKotlinOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
.execute();
|
.execute();
|
||||||
|
|
Binary file not shown.
|
@ -2,7 +2,7 @@ bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.1
|
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.1
|
||||||
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0
|
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2
|
||||||
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
bld.version=1.9.1
|
bld.version=2.0.0-SNAPSHOT
|
||||||
|
|
|
@ -24,8 +24,7 @@ import rife.bld.publish.PublishScm;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static rife.bld.dependencies.Repository.MAVEN_CENTRAL;
|
import static rife.bld.dependencies.Repository.*;
|
||||||
import static rife.bld.dependencies.Repository.RIFE2_RELEASES;
|
|
||||||
import static rife.bld.dependencies.Scope.compile;
|
import static rife.bld.dependencies.Scope.compile;
|
||||||
import static rife.bld.dependencies.Scope.test;
|
import static rife.bld.dependencies.Scope.test;
|
||||||
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING;
|
||||||
|
@ -39,15 +38,15 @@ public class DetektOperationBuild extends Project {
|
||||||
javaRelease = 17;
|
javaRelease = 17;
|
||||||
downloadSources = true;
|
downloadSources = true;
|
||||||
autoDownloadPurge = true;
|
autoDownloadPurge = true;
|
||||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
|
||||||
|
|
||||||
scope(compile)
|
scope(compile)
|
||||||
.include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1)))
|
.include(dependency("com.uwyn.rife2", "bld", version(2, 0, 0, "SNAPSHOT")))
|
||||||
.include(dependency("io.gitlab.arturbosch.detekt", "detekt-cli", version(1, 23, 6)));
|
.include(dependency("io.gitlab.arturbosch.detekt", "detekt-cli", version(1, 23, 6)));
|
||||||
scope(test)
|
scope(test)
|
||||||
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2)))
|
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3)))
|
||||||
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2)))
|
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3)))
|
||||||
.include(dependency("org.assertj", "assertj-core", version(3, 26, 0)));
|
.include(dependency("org.assertj", "assertj-core", version(3, 26, 3)));
|
||||||
javadocOperation()
|
javadocOperation()
|
||||||
.javadocOptions()
|
.javadocOptions()
|
||||||
.author()
|
.author()
|
||||||
|
@ -89,7 +88,7 @@ public class DetektOperationBuild extends Project {
|
||||||
}
|
}
|
||||||
|
|
||||||
@BuildCommand(summary = "Checks source code with PMD")
|
@BuildCommand(summary = "Checks source code with PMD")
|
||||||
public void pmd() {
|
public void pmd() throws Exception {
|
||||||
new PmdOperation()
|
new PmdOperation()
|
||||||
.fromProject(this)
|
.fromProject(this)
|
||||||
.ruleSets("config/pmd.xml")
|
.ruleSets("config/pmd.xml")
|
||||||
|
|
|
@ -21,7 +21,6 @@ import rife.bld.extension.detekt.Report;
|
||||||
import rife.bld.extension.detekt.ReportId;
|
import rife.bld.extension.detekt.ReportId;
|
||||||
import rife.bld.operations.AbstractProcessOperation;
|
import rife.bld.operations.AbstractProcessOperation;
|
||||||
import rife.bld.operations.exceptions.ExitStatusException;
|
import rife.bld.operations.exceptions.ExitStatusException;
|
||||||
import rife.tools.exceptions.FileUtilsErrorException;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -60,6 +59,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
|
||||||
private final Collection<File> classpath_ = new ArrayList<>();
|
private final Collection<File> classpath_ = new ArrayList<>();
|
||||||
private final Collection<File> config_ = new ArrayList<>();
|
private final Collection<File> config_ = new ArrayList<>();
|
||||||
private final Collection<String> excludes_ = new ArrayList<>();
|
private final Collection<String> excludes_ = new ArrayList<>();
|
||||||
|
private final Collection<String> includes_ = new ArrayList<>();
|
||||||
private final Collection<File> input_ = new ArrayList<>();
|
private final Collection<File> input_ = new ArrayList<>();
|
||||||
private final Collection<File> plugins_ = new ArrayList<>();
|
private final Collection<File> plugins_ = new ArrayList<>();
|
||||||
private final Collection<Report> report_ = new ArrayList<>();
|
private final Collection<Report> report_ = new ArrayList<>();
|
||||||
|
@ -73,7 +73,6 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
|
||||||
private boolean debug_;
|
private boolean debug_;
|
||||||
private boolean disableDefaultRuleSets_;
|
private boolean disableDefaultRuleSets_;
|
||||||
private boolean generateConfig_;
|
private boolean generateConfig_;
|
||||||
private final Collection<String> includes_ = new ArrayList<>();
|
|
||||||
private String jdkHome_;
|
private String jdkHome_;
|
||||||
private String jvmTarget_;
|
private String jvmTarget_;
|
||||||
private String languageVersion_;
|
private String languageVersion_;
|
||||||
|
@ -348,20 +347,26 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
|
||||||
/**
|
/**
|
||||||
* Performs the operation.
|
* Performs the operation.
|
||||||
*
|
*
|
||||||
* @throws InterruptedException when the operation was interrupted
|
* @throws InterruptedException when the operation was interrupted
|
||||||
* @throws IOException when an exception occurred during the execution of the process
|
* @throws IOException when an exception occurred during the execution of the process
|
||||||
* @throws FileUtilsErrorException when an exception occurred during the retrieval of the operation output
|
* @throws ExitStatusException when the exit status was changed during the operation
|
||||||
* @throws ExitStatusException when the exit status was changed during the operation
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void execute() throws IOException, FileUtilsErrorException, InterruptedException, ExitStatusException {
|
public void execute() throws IOException, InterruptedException, ExitStatusException {
|
||||||
super.execute();
|
if (project_ == null) {
|
||||||
if (successful_ && LOGGER.isLoggable(Level.INFO)) {
|
if (LOGGER.isLoggable(Level.SEVERE) && !silent()) {
|
||||||
if (createBaseline_) {
|
LOGGER.severe("A project must be specified.");
|
||||||
LOGGER.info("Detekt baseline generated successfully: "
|
}
|
||||||
+ "file://" + new File(baseline_).toURI().getPath());
|
throw new ExitStatusException(ExitStatusException.EXIT_FAILURE);
|
||||||
} else {
|
} else {
|
||||||
LOGGER.info("Detekt operation finished successfully.");
|
super.execute();
|
||||||
|
if (successful_ && LOGGER.isLoggable(Level.INFO) && !silent()){
|
||||||
|
if (createBaseline_) {
|
||||||
|
LOGGER.info("Detekt baseline generated successfully: "
|
||||||
|
+ "file://" + new File(baseline_).toURI().getPath());
|
||||||
|
} else {
|
||||||
|
LOGGER.info("Detekt operation finished successfully.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -372,144 +377,142 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected List<String> executeConstructProcessCommandList() {
|
protected List<String> executeConstructProcessCommandList() {
|
||||||
if (project_ == null) {
|
|
||||||
LOGGER.severe("A project must be specified.");
|
|
||||||
}
|
|
||||||
|
|
||||||
final List<String> args = new ArrayList<>();
|
final List<String> args = new ArrayList<>();
|
||||||
args.add(javaTool());
|
if (project_ != null) {
|
||||||
args.add("-cp");
|
args.add(javaTool());
|
||||||
args.add(getDetektJarList(project_.libBldDirectory()));
|
args.add("-cp");
|
||||||
args.add("io.gitlab.arturbosch.detekt.cli.Main");
|
args.add(getDetektJarList(project_.libBldDirectory()));
|
||||||
|
args.add("io.gitlab.arturbosch.detekt.cli.Main");
|
||||||
|
|
||||||
// all-rules
|
// all-rules
|
||||||
if (allRules_) {
|
if (allRules_) {
|
||||||
args.add("--all-rules");
|
args.add("--all-rules");
|
||||||
}
|
}
|
||||||
|
|
||||||
// auto-correct
|
// auto-correct
|
||||||
if (autoCorrect_) {
|
if (autoCorrect_) {
|
||||||
args.add("--auto-correct");
|
args.add("--auto-correct");
|
||||||
}
|
}
|
||||||
|
|
||||||
// base-path
|
// base-path
|
||||||
if (isNotBlank(basePath_)) {
|
if (isNotBlank(basePath_)) {
|
||||||
args.add("--base-path");
|
args.add("--base-path");
|
||||||
args.add(basePath_);
|
args.add(basePath_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// baseline
|
// baseline
|
||||||
if (isNotBlank(baseline_)) {
|
if (isNotBlank(baseline_)) {
|
||||||
args.add("--baseline");
|
args.add("--baseline");
|
||||||
args.add(baseline_);
|
args.add(baseline_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// build-upon-default-config
|
// build-upon-default-config
|
||||||
if (buildUponDefaultConfig_) {
|
if (buildUponDefaultConfig_) {
|
||||||
args.add("--build-upon-default-config");
|
args.add("--build-upon-default-config");
|
||||||
}
|
}
|
||||||
|
|
||||||
// classpath
|
// classpath
|
||||||
if (!classpath_.isEmpty()) {
|
if (!classpath_.isEmpty()) {
|
||||||
args.add("--classpath");
|
args.add("--classpath");
|
||||||
args.add(String.join(File.pathSeparator, classpath_.stream().map(File::getAbsolutePath).toList()));
|
args.add(String.join(File.pathSeparator, classpath_.stream().map(File::getAbsolutePath).toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// config
|
// config
|
||||||
if (!config_.isEmpty()) {
|
if (!config_.isEmpty()) {
|
||||||
args.add("-config");
|
args.add("-config");
|
||||||
args.add(String.join(";", config_.stream().map(File::getAbsolutePath).toList()));
|
args.add(String.join(";", config_.stream().map(File::getAbsolutePath).toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// config-resource
|
// config-resource
|
||||||
if (isNotBlank(configResource_)) {
|
if (isNotBlank(configResource_)) {
|
||||||
args.add("--config-resource");
|
args.add("--config-resource");
|
||||||
args.add(configResource_);
|
args.add(configResource_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create-baseline
|
// create-baseline
|
||||||
if (createBaseline_) {
|
if (createBaseline_) {
|
||||||
args.add("--create-baseline");
|
args.add("--create-baseline");
|
||||||
}
|
}
|
||||||
|
|
||||||
// debug
|
// debug
|
||||||
if (debug_) {
|
if (debug_) {
|
||||||
args.add("--debug");
|
args.add("--debug");
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable-default-rulesets
|
// disable-default-rulesets
|
||||||
if (disableDefaultRuleSets_) {
|
if (disableDefaultRuleSets_) {
|
||||||
args.add("--disable-default-rulesets");
|
args.add("--disable-default-rulesets");
|
||||||
}
|
}
|
||||||
|
|
||||||
// excludes
|
// excludes
|
||||||
if (!excludes_.isEmpty()) {
|
if (!excludes_.isEmpty()) {
|
||||||
args.add("--excludes");
|
args.add("--excludes");
|
||||||
args.add(String.join(",", excludes_));
|
args.add(String.join(",", excludes_));
|
||||||
}
|
}
|
||||||
|
|
||||||
// generate-config
|
// generate-config
|
||||||
if (generateConfig_) {
|
if (generateConfig_) {
|
||||||
args.add("--generate-config");
|
args.add("--generate-config");
|
||||||
}
|
}
|
||||||
|
|
||||||
// includes
|
// includes
|
||||||
if (!includes_.isEmpty()) {
|
if (!includes_.isEmpty()) {
|
||||||
args.add("--includes");
|
args.add("--includes");
|
||||||
args.add(String.join(",", includes_));
|
args.add(String.join(",", includes_));
|
||||||
}
|
}
|
||||||
|
|
||||||
// input
|
// input
|
||||||
if (!input_.isEmpty()) {
|
if (!input_.isEmpty()) {
|
||||||
args.add("--input");
|
args.add("--input");
|
||||||
args.add(String.join(",", input_.stream().map(File::getAbsolutePath).toList()));
|
args.add(String.join(",", input_.stream().map(File::getAbsolutePath).toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// jdk-home
|
// jdk-home
|
||||||
if (isNotBlank(jdkHome_)) {
|
if (isNotBlank(jdkHome_)) {
|
||||||
args.add("--jdk-home");
|
args.add("--jdk-home");
|
||||||
args.add(jdkHome_);
|
args.add(jdkHome_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// jvm-target
|
// jvm-target
|
||||||
if (isNotBlank(jvmTarget_)) {
|
if (isNotBlank(jvmTarget_)) {
|
||||||
args.add("--jvm-target");
|
args.add("--jvm-target");
|
||||||
args.add(jvmTarget_);
|
args.add(jvmTarget_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// language-version
|
// language-version
|
||||||
if (isNotBlank(languageVersion_)) {
|
if (isNotBlank(languageVersion_)) {
|
||||||
args.add("--language-version");
|
args.add("--language-version");
|
||||||
args.add(languageVersion_);
|
args.add(languageVersion_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// max-issues
|
// max-issues
|
||||||
if (maxIssues_ > 0) {
|
if (maxIssues_ > 0) {
|
||||||
args.add("--max-issues");
|
args.add("--max-issues");
|
||||||
args.add(String.valueOf(maxIssues_));
|
args.add(String.valueOf(maxIssues_));
|
||||||
}
|
}
|
||||||
|
|
||||||
// parallel
|
// parallel
|
||||||
if (parallel_) {
|
if (parallel_) {
|
||||||
args.add("--parallel");
|
args.add("--parallel");
|
||||||
}
|
}
|
||||||
|
|
||||||
// plugins
|
// plugins
|
||||||
if (!plugins_.isEmpty()) {
|
if (!plugins_.isEmpty()) {
|
||||||
args.add("--plugins");
|
args.add("--plugins");
|
||||||
args.add(String.join(",", plugins_.stream().map(File::getAbsolutePath).toList()));
|
args.add(String.join(",", plugins_.stream().map(File::getAbsolutePath).toList()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// report
|
// report
|
||||||
if (!report_.isEmpty()) {
|
if (!report_.isEmpty()) {
|
||||||
report_.forEach(it -> {
|
report_.forEach(it -> {
|
||||||
args.add("--report");
|
args.add("--report");
|
||||||
args.add(it.id().name().toLowerCase() + ":" + it.path());
|
args.add(it.id().name().toLowerCase() + ":" + it.path());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LOGGER.isLoggable(Level.FINE)) {
|
if (LOGGER.isLoggable(Level.FINE) && !silent()) {
|
||||||
LOGGER.fine(String.join(" ", args.stream().filter(this::isNotBlank).toList()));
|
LOGGER.fine(String.join(" ", args.stream().filter(this::isNotBlank).toList()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return args;
|
return args;
|
||||||
|
@ -551,9 +554,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
// Retrieves the matching JARs files from the given directory.
|
||||||
* Retrieves the matching JARs files from the given directory.
|
|
||||||
*/
|
|
||||||
private String getDetektJarList(File directory) {
|
private String getDetektJarList(File directory) {
|
||||||
var jars = new ArrayList<String>();
|
var jars = new ArrayList<String>();
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ class DetektOperationTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops")
|
||||||
void testCheckAllParameters() throws IOException {
|
void testCheckAllParameters() throws IOException {
|
||||||
var args = Files.readAllLines(Paths.get("src", "test", "resources", "detekt-args.txt"));
|
var args = Files.readAllLines(Paths.get("src", "test", "resources", "detekt-args.txt"));
|
||||||
|
|
||||||
|
@ -108,10 +109,10 @@ class DetektOperationTest {
|
||||||
|
|
||||||
for (var i = 1; i < 6; i++) {
|
for (var i = 1; i < 6; i++) {
|
||||||
assertThat(op.classPath()).as("classPath[" + i + ']').hasSize(5).contains(new File("path" + i));
|
assertThat(op.classPath()).as("classPath[" + i + ']').hasSize(5).contains(new File("path" + i));
|
||||||
assertThat(op.config()).as("config[" + i + ']').hasSize(5).contains(new File("config" + i));
|
assertThat(op.config()).as("config[" + i + ']').hasSize(5).contains(new File("config" + i));
|
||||||
assertThat(op.includes()).as("includes[" + i + ']').hasSize(5).contains("includes" + i);
|
assertThat(op.includes()).as("includes[" + i + ']').hasSize(5).contains("includes" + i);
|
||||||
assertThat(op.input()).as("input[" + i + ']').hasSize(5).contains(new File("input" + i));
|
assertThat(op.input()).as("input[" + i + ']').hasSize(5).contains(new File("input" + i));
|
||||||
assertThat(op.plugins()).as("plugins[" + i + ']').hasSize(5).contains(new File("jar" + i));
|
assertThat(op.plugins()).as("plugins[" + i + ']').hasSize(5).contains(new File("jar" + i));
|
||||||
}
|
}
|
||||||
|
|
||||||
var params = op.executeConstructProcessCommandList();
|
var params = op.executeConstructProcessCommandList();
|
||||||
|
@ -190,4 +191,10 @@ class DetektOperationTest {
|
||||||
.debug(true);
|
.debug(true);
|
||||||
assertThatThrownBy(op::execute).isInstanceOf(ExitStatusException.class);
|
assertThatThrownBy(op::execute).isInstanceOf(ExitStatusException.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testExecuteNoProject() {
|
||||||
|
var op = new DetektOperation();
|
||||||
|
assertThatCode(op::execute).isInstanceOf(ExitStatusException.class);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue