Compare commits

...

31 commits
0.9.6 ... main

Author SHA1 Message Date
ea10fd012f
Disable cleanPath() for testing 2025-03-24 19:01:12 -07:00
69a9eac414
Add baseline file for testing 2025-03-24 17:36:30 -07:00
5a2824507f
Removed paths quoting 2025-03-24 16:12:15 -07:00
3e350e617a
Bump detekt extension to version 0.9.10-SNAPSHOT 2025-03-24 16:11:11 -07:00
432e5ffed1
Enable extension logging in examples 2025-03-24 16:09:45 -07:00
e6d5c6c38f
Quote and clean path in the process command list 2025-03-24 10:06:41 -07:00
7d5b50641c
Add OS matrix to test the project and examples on Ubuntu, Windows and macOS 2025-03-24 01:44:39 -07:00
30f92d1262
Bump Kotlin extension to version 1.1.0-SNAPSHOT 2025-03-24 01:39:53 -07:00
8d4643d99a
Bump Kotlin to version 2.1.20 2025-03-24 01:38:50 -07:00
0efd5ab2fe
JDK 24 2025-03-18 23:34:19 -07:00
3df50c2e79
Add generic installation instructions 2025-03-18 13:07:29 -07:00
012cd14067
Bump PMD extension to version 1.2.1 2025-03-18 13:06:22 -07:00
e39302bf8b
Bump JUnit to version 5.12.1 2025-03-18 13:06:07 -07:00
41d6667dca
Bump bld to version 2.2.1 2025-02-24 22:48:05 -08:00
7386332361
Version 0.9.9 2025-02-23 16:32:20 -08:00
95971222f9
Bump Detekt to version 1.23.8 2025-02-23 16:29:33 -08:00
ae53af2ba6
Bump PMD extension to version 1.2.0 2025-02-23 15:44:28 -08:00
7ad511a40c
Bump JUnit to version 5.12.0 2025-02-23 15:44:28 -08:00
1115acaad4
Update pages actions to the latest versions 2025-02-23 15:44:27 -08:00
d6f424972a
Version 0.9.8 2025-01-14 12:09:51 -08:00
99691fb2e9
Fixed BaseProjectBlueprint init in tests 2025-01-14 00:08:10 -08:00
48952f505f
Updated copyright for 2025 2025-01-14 00:05:55 -08:00
93d963398b
Bumped bld to version 2.2.0 2025-01-14 00:04:44 -08:00
1bef03ec79
Bumped AssertJ to version 3.27.2 2025-01-14 00:04:14 -08:00
d1f4a614fe
Bumped Kotlin extension to version 1.0.4 2025-01-14 00:03:46 -08:00
33774b8a93
Updated extensions
Bumped Kotlin extension to version 1.0.3
Bumped PMD extension to version 1.1.9
2024-12-28 17:46:39 -08:00
cbe95f7cc2
Bumped Kotlin to version 2.1.0 2024-12-28 17:45:36 -08:00
c993a3ab14
Bumped AssertJ to version 3.27.0 2024-12-28 17:44:36 -08:00
5b6181825d
Bumped JUnit to version 5.11.4 2024-12-28 17:43:40 -08:00
e04f46287b
Updated dependencies
Bumped JUnit version to 5.11.3
Bumped PMD extension version to 1.1.7
Bumped JDK to version 23 (GitHub CI Workflow)
Bumped Kotlin to version 2.0.21
Bumped Kotlin extension to version 1.0.2
2024-10-27 17:03:26 -07:00
a1eb4cea1d
Bumped bld to version 1.23.7 2024-09-08 18:35:57 -07:00
21 changed files with 147 additions and 83 deletions

View file

@ -4,11 +4,13 @@ on: [push, pull_request, workflow_dispatch]
jobs: jobs:
build-bld-project: build-bld-project:
runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
java-version: [17, 21, 22] java-version: [ 17, 21, 24 ]
kotlin-version: [ 1.9.25, 2.0.21, 2.1.20 ]
os: [ ubuntu-latest, windows-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps: steps:
- name: Checkout source repository - name: Checkout source repository
@ -22,12 +24,16 @@ jobs:
distribution: "zulu" distribution: "zulu"
java-version: ${{ matrix.java-version }} java-version: ${{ matrix.java-version }}
- name: Download dependencies
run: ./bld download
- name: Download dependencies [examples] - name: Download dependencies [examples]
working-directory: examples working-directory: examples
run: ./bld download run: ./bld download
- name: Run Detekt [examples]
working-directory: examples
run: ./bld compile test-ci
- name: Download dependencies
run: ./bld download
- name: Run tests - name: Run tests
run: ./bld compile test run: ./bld compile test

View file

@ -47,11 +47,11 @@ jobs:
uses: actions/configure-pages@v3 uses: actions/configure-pages@v3
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v1 uses: actions/upload-pages-artifact@v3
with: with:
# Upload generated Javadocs repository # Upload generated Javadocs repository
path: "build/javadoc/" path: "build/javadoc/"
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages
id: deployment id: deployment
uses: actions/deploy-pages@v1 uses: actions/deploy-pages@v4

13
.idea/icon.svg generated Normal file
View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 179 108" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-210.511,-96.3382)">
<g transform="matrix(1,0,0,1,-23.3386,-649.816)">
<g transform="matrix(0.221288,0,0,0.24,73.9536,390.254)">
<path d="M722.568,1482.92L722.568,1921.1L808.968,1921.1L808.968,1888.7C822.168,1907.9 846.168,1930.1 893.568,1930.1C933.168,1930.1 961.968,1917.5 985.368,1893.5C1012.97,1865.9 1027.37,1827.5 1027.37,1786.1C1027.37,1741.7 1011.17,1705.1 985.368,1680.5C961.968,1658.3 928.968,1644.5 892.368,1644.5C862.968,1644.5 830.568,1654.1 808.968,1683.5L808.968,1482.92L722.568,1482.92ZM871.368,1718.9C888.768,1718.9 903.768,1723.7 917.568,1736.9C930.168,1748.9 938.568,1766.3 938.568,1787.9C938.568,1807.7 930.168,1825.1 917.568,1837.1C904.368,1849.7 887.568,1855.7 872.568,1855.7C856.368,1855.7 837.168,1849.1 823.368,1835.9C813.168,1826.3 803.568,1810.1 803.568,1787.9C803.568,1765.1 812.568,1749.5 822.768,1738.7C836.568,1724.3 852.768,1718.9 871.368,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
<rect x="1083.77" y="1482.92" width="86.4" height="438.182" style="fill:rgb(250,144,82);fill-rule:nonzero;"/>
<path d="M1531.37,1482.92L1444.97,1482.92L1444.97,1683.5C1423.37,1654.1 1390.97,1644.5 1361.57,1644.5C1324.97,1644.5 1291.97,1658.3 1268.57,1680.5C1242.77,1705.1 1226.57,1741.7 1226.57,1786.1C1226.57,1827.5 1240.97,1865.9 1268.57,1893.5C1291.97,1917.5 1320.77,1930.1 1360.37,1930.1C1407.77,1930.1 1431.77,1907.9 1444.97,1888.7L1444.97,1921.1L1531.37,1921.1L1531.37,1482.92ZM1382.57,1718.9C1401.17,1718.9 1417.37,1724.3 1431.17,1738.7C1441.37,1749.5 1450.37,1765.1 1450.37,1787.9C1450.37,1810.1 1440.77,1826.3 1430.57,1835.9C1416.77,1849.1 1397.57,1855.7 1381.37,1855.7C1366.37,1855.7 1349.57,1849.7 1336.37,1837.1C1323.77,1825.1 1315.37,1807.7 1315.37,1787.9C1315.37,1766.3 1323.77,1748.9 1336.37,1736.9C1350.17,1723.7 1365.17,1718.9 1382.57,1718.9Z" style="fill:rgb(35,146,255);fill-rule:nonzero;"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -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-2.1.0.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.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-2.1.0-sources.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-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!/" />

View file

@ -9,7 +9,7 @@
], ],
"java.configuration.updateBuildConfiguration": "automatic", "java.configuration.updateBuildConfiguration": "automatic",
"java.project.referencedLibraries": [ "java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-2.1.0.jar", "${HOME}/.bld/dist/bld-2.2.1.jar",
"lib/**/*.jar" "lib/**/*.jar"
] ]
} }

View file

@ -3,12 +3,20 @@
[![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
[![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![bld](https://img.shields.io/badge/2.2.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld)
[![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-detekt/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-detekt) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-detekt/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-detekt)
[![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-detekt/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-detekt) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-detekt/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-detekt)
[![GitHub CI](https://github.com/rife2/bld-detekt/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-detekt/actions/workflows/bld.yml) [![GitHub CI](https://github.com/rife2/bld-detekt/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-detekt/actions/workflows/bld.yml)
To install, please refer to the [extensions documentation](https://github.com/rife2/bld/wiki/Extensions). To install the latest version, add the following to the `lib/bld/bld-wrapper.properties` file:
```properties
bld.extension-detekt=com.uwyn.rife2:bld-detekt
```
For more information, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.
## Check Source Code with Detekt
To check all Kotlin source code located in the project, add the following to your build file: To check all Kotlin source code located in the project, add the following to your build file:
```java ```java

View file

@ -7,9 +7,9 @@
<!-- BEST PRACTICES --> <!-- BEST PRACTICES -->
<rule ref="category/java/bestpractices.xml"> <rule ref="category/java/bestpractices.xml">
<exclude name="AvoidPrintStackTrace"/> <exclude name="AvoidPrintStackTrace"/>
<exclude name="JUnit4TestShouldUseTestAnnotation"/>
<exclude name="JUnitTestContainsTooManyAsserts"/>
<exclude name="GuardLogStatement"/> <exclude name="GuardLogStatement"/>
<exclude name="UnitTestContainsTooManyAsserts"/>
<exclude name="UnitTestShouldUseTestAnnotation"/>
</rule> </rule>
<rule ref="category/java/bestpractices.xml/MissingOverride"> <rule ref="category/java/bestpractices.xml/MissingOverride">

6
examples/.idea/bld.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="BldConfiguration">
<events />
</component>
</project>

View file

@ -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-2.1.0.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1.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-2.1.0-sources.jar!/" /> <root url="jar://$USER_HOME$/.bld/dist/bld-2.2.1-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!/" />

View file

@ -9,7 +9,7 @@
], ],
"java.configuration.updateBuildConfiguration": "automatic", "java.configuration.updateBuildConfiguration": "automatic",
"java.project.referencedLibraries": [ "java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-2.1.0.jar", "${HOME}/.bld/dist/bld-2.2.1.jar",
"lib/**/*.jar" "lib/**/*.jar"
] ]
} }

Binary file not shown.

View file

@ -1,8 +1,8 @@
bld.downloadExtensionJavadoc=false bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true bld.downloadExtensionSources=true
bld.downloadLocation= bld.downloadLocation=
bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.6 bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.10-SNAPSHOT
bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.1 bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.1.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=2.1.0 bld.version=2.2.1

View file

@ -31,13 +31,14 @@ public class ExampleBuild extends Project {
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES); repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES);
final var kotlin = version(2, 0, 20); final var kotlin = version(2, 1, 20);
scope(compile) scope(compile)
.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, 11, 0))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0))); .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
.include(dependency("org.junit.platform", "junit-platform-launcher", version(1, 12, 1)));
// 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,14 +46,14 @@ 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);
} }
@ -100,4 +101,13 @@ public class ExampleBuild extends Project {
.input("src/test/kotlin") .input("src/test/kotlin")
.execute(); .execute();
} }
@BuildCommand(value = "test-ci", summary = "Run detek with a test baseline")
public void testCi() throws ExitStatusException, IOException, InterruptedException {
// Run detek with the test basline (for CI testing)
new DetektOperation()
.fromProject(this)
.baseline("src/test/resources/detekt-baseline.xml")
.execute();
}
} }

View file

@ -0,0 +1,12 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>EmptyIfBlock:Example.kt$Example.Companion${ }</ID>
<ID>MagicNumber:Example.kt$Example$5</ID>
<ID>NewLineAtEndOfFile:ExampleTest.kt$com.example.ExampleTest.kt</ID>
<ID>ThrowingExceptionsWithoutMessageOrCause:Example.kt$Example.Companion$IllegalStateException()</ID>
<ID>UseCheckOrError:Example.kt$Example.Companion$throw IllegalStateException()</ID>
<ID>VariableNaming:Example.kt$Example$// https://detekt.dev/docs/rules/naming#variablenaming val Message: String get() = "Hello World!"</ID>
</CurrentIssues>
</SmellBaseline>

Binary file not shown.

View file

@ -1,8 +1,8 @@
bld.downloadExtensionJavadoc=false bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true bld.downloadExtensionSources=true
bld.downloadLocation= bld.downloadLocation=
bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.3 bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.4
bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.5 bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.2.1
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=2.1.0 bld.version=2.2.1

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 2023-2024 the original author or authors. * Copyright 2023-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -23,6 +23,7 @@ import rife.bld.publish.PublishLicense;
import rife.bld.publish.PublishScm; import rife.bld.publish.PublishScm;
import java.util.List; import java.util.List;
import java.util.Locale;
import static rife.bld.dependencies.Repository.*; import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.Scope.compile; import static rife.bld.dependencies.Scope.compile;
@ -33,20 +34,22 @@ public class DetektOperationBuild extends Project {
public DetektOperationBuild() { public DetektOperationBuild() {
pkg = "rife.bld.extension"; pkg = "rife.bld.extension";
name = "DetektOperation"; name = "DetektOperation";
version = version(0, 9, 6); version = version(0, 9, 10, "SNAPSHOT");
javaRelease = 17; javaRelease = 17;
downloadSources = true; downloadSources = true;
autoDownloadPurge = true; autoDownloadPurge = true;
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS); repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
scope(compile) scope(compile)
.include(dependency("com.uwyn.rife2", "bld", version(2, 1, 0))) .include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)))
.include(dependency("io.gitlab.arturbosch.detekt", "detekt-cli", version(1, 23, 6))); .include(dependency("io.gitlab.arturbosch.detekt", "detekt-cli", version(1, 23, 8)));
scope(test) scope(test)
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
.include(dependency("org.assertj", "assertj-core", version(3, 26, 3))); .include(dependency("org.assertj", "assertj-core", version(3, 27, 3)));
javadocOperation() javadocOperation()
.javadocOptions() .javadocOptions()
.author() .author()
@ -56,25 +59,23 @@ public class DetektOperationBuild extends Project {
publishOperation() publishOperation()
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2")) .repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
.repository(repository("github"))
.info() .info()
.groupId("com.uwyn.rife2") .groupId("com.uwyn.rife2")
.artifactId("bld-detekt") .artifactId("bld-detekt")
.description("bld Detekt Extension") .description("bld Detekt Extension")
.url("https://github.com/rife2/bld-detekt") .url("https://github.com/rife2/bld-detekt")
.developer( .developer(new PublishDeveloper()
new PublishDeveloper()
.id("ethauvin") .id("ethauvin")
.name("Erik C. Thauvin") .name("Erik C. Thauvin")
.email("erik@thauvin.net") .email("erik@thauvin.net")
.url("https://erik.thauvin.net/") .url("https://erik.thauvin.net/")
) )
.license( .license(new PublishLicense()
new PublishLicense()
.name("The Apache License, Version 2.0") .name("The Apache License, Version 2.0")
.url("https://www.apache.org/licenses/LICENSE-2.0.txt") .url("https://www.apache.org/licenses/LICENSE-2.0.txt")
) )
.scm( .scm(new PublishScm()
new PublishScm()
.connection("scm:git:https://github.com/rife2/bld-detekt.git") .connection("scm:git:https://github.com/rife2/bld-detekt.git")
.developerConnection("scm:git:git@github.com:rife2/bld-detekt.git") .developerConnection("scm:git:git@github.com:rife2/bld-detekt.git")
.url("https://github.com/rife2/bld-detekt") .url("https://github.com/rife2/bld-detekt")
@ -97,10 +98,13 @@ public class DetektOperationBuild extends Project {
@Override @Override
public void test() throws Exception { public void test() throws Exception {
var os = System.getProperty("os.name");
if (os != null && os.toLowerCase(Locale.US).contains("linux")) {
new ExecOperation() new ExecOperation()
.fromProject(this) .fromProject(this)
.command("scripts/cliargs.sh") .command("scripts/cliargs.sh")
.execute(); .execute();
}
super.test(); super.test();
} }

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 2023-2024 the original author or authors. * Copyright 2023-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -48,10 +48,10 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
"kotlin-reflect-", "kotlin-reflect-",
"kotlin-script-runtime-", "kotlin-script-runtime-",
"kotlin-stdlib-", "kotlin-stdlib-",
"kotlin-stdlib-jdk7-", "kotlinx-coroutines-",
"kotlin-stdlib-jdk8-",
"kotlinx-html-jvm-", "kotlinx-html-jvm-",
"kotlinx-serialization-", "kotlinx-serialization-",
"poko-annotations-jvm-",
"sarif4k-jvm-", "sarif4k-jvm-",
"snakeyaml-engine-", "snakeyaml-engine-",
"trove4j-"); "trove4j-");
@ -324,7 +324,6 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
return configStrings(List.of(configs)); return configStrings(List.of(configs));
} }
/** /**
* Paths to the config files ({@code path/to/config.yml}). * Paths to the config files ({@code path/to/config.yml}).
* *
@ -702,7 +701,7 @@ public class DetektOperation extends AbstractProcessOperation<DetektOperation> {
} }
} }
} }
return String.join(":", jars); return String.join(File.pathSeparator, jars);
} }
/** /**

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 2023-2024 the original author or authors. * Copyright 2023-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 2023-2024 the original author or authors. * Copyright 2023-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.

View file

@ -1,5 +1,5 @@
/* /*
* Copyright 2023-2024 the original author or authors. * Copyright 2023-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -16,8 +16,11 @@
package rife.bld.extension; package rife.bld.extension;
import org.assertj.core.api.AutoCloseableSoftAssertions;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledOnOs;
import org.junit.jupiter.api.condition.OS;
import rife.bld.BaseProject; import rife.bld.BaseProject;
import rife.bld.blueprints.BaseProjectBlueprint; import rife.bld.blueprints.BaseProjectBlueprint;
import rife.bld.extension.detekt.Report; import rife.bld.extension.detekt.Report;
@ -91,6 +94,7 @@ class DetektOperationTest {
} }
@Test @Test
@EnabledOnOs(OS.LINUX)
@SuppressWarnings("PMD.AvoidInstantiatingObjectsInLoops") @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"));
@ -147,6 +151,7 @@ class DetektOperationTest {
var params = op.executeConstructProcessCommandList(); var params = op.executeConstructProcessCommandList();
try (var softly = new AutoCloseableSoftAssertions()) {
for (var p : args) { for (var p : args) {
var found = false; var found = false;
for (var a : params) { for (var a : params) {
@ -155,7 +160,8 @@ class DetektOperationTest {
break; break;
} }
} }
assertThat(found).as(p + " not found.").isTrue(); softly.assertThat(found).as(p + " not found.").isTrue();
}
} }
} }
@ -238,11 +244,11 @@ class DetektOperationTest {
void testExampleBaseline() throws IOException, ExitStatusException, InterruptedException { void testExampleBaseline() throws IOException, ExitStatusException, InterruptedException {
var tmpDir = Files.createTempDirectory("bld-detekt-").toFile(); var tmpDir = Files.createTempDirectory("bld-detekt-").toFile();
var baseline = new File(tmpDir, "detekt-baseline.xml"); var baseline = new File(tmpDir, "examples/src/test/resources/detekt-baseline.xml");
var op = new DetektOperation() var op = new DetektOperation()
.fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example",
"Example")) "example", "Example"))
.baseline(baseline) .baseline(baseline)
.createBaseline(true); .createBaseline(true);
op.execute(); op.execute();
@ -257,7 +263,7 @@ class DetektOperationTest {
void testExampleMaxIssues() { void testExampleMaxIssues() {
var op = new DetektOperation() var op = new DetektOperation()
.fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example",
"Example")) "example", "Example"))
.maxIssues(8); .maxIssues(8);
assertThatNoException().isThrownBy(op::execute); assertThatNoException().isThrownBy(op::execute);
} }
@ -274,7 +280,7 @@ class DetektOperationTest {
var op = new DetektOperation() var op = new DetektOperation()
.fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example",
"Example")) "example", "Example"))
.report(new Report(ReportId.HTML, html.getAbsolutePath())) .report(new Report(ReportId.HTML, html.getAbsolutePath()))
.report(new Report(ReportId.XML, xml.getAbsolutePath())) .report(new Report(ReportId.XML, xml.getAbsolutePath()))
.report(new Report(ReportId.TXT, txt.getAbsolutePath())) .report(new Report(ReportId.TXT, txt.getAbsolutePath()))
@ -292,7 +298,7 @@ class DetektOperationTest {
void testExamplesExecute() { void testExamplesExecute() {
var op = new DetektOperation() var op = new DetektOperation()
.fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example",
"Example")) "example", "Example"))
.debug(true); .debug(true);
assertThatThrownBy(op::execute).isInstanceOf(ExitStatusException.class); assertThatThrownBy(op::execute).isInstanceOf(ExitStatusException.class);
} }