Преглед на файлове

SONAR-20258 Generate package-info files automatically

tags/10.2.0.77647
Aurelien Poscia преди 8 месеца
родител
ревизия
ac02a47ce7
променени са 3 файла, в които са добавени 37 реда и са изтрити 0 реда
  1. 35
    0
      build.gradle
  2. 1
    0
      plugins/sonar-education-plugin/build.gradle
  3. 1
    0
      ut-monitoring/build.gradle

+ 35
- 0
build.gradle Целия файл

import groovy.json.JsonOutput import groovy.json.JsonOutput
import groovy.text.SimpleTemplateEngine
import org.sonar.build.BlackBoxTest import org.sonar.build.BlackBoxTest


import static org.gradle.api.JavaVersion.VERSION_17 import static org.gradle.api.JavaVersion.VERSION_17
// when needed (see protobuf modules for example) // when needed (see protobuf modules for example)
} }


task generatePackageInfo {
doLast {
def allPathsContainingJavaFiles = [] as Set

fileTree('src/main/java/').matching() {
include "*/**/*.java"
}.forEach {
allPathsContainingJavaFiles << it.toPath().toFile().getParent();
}

allPathsContainingJavaFiles.each {
String packageInfoPath = it + "/package-info.java"
File packageInfoFile = new File (packageInfoPath)
if (!packageInfoFile.exists()) {
logger.warn("Creating file: " + packageInfoPath)
def packageName = packageInfoFile.getParent().takeAfter("src/main/java/").replaceAll("/", "\\.")
String packageInfoContent = applyPackageInfoTemplate(packageName)
packageInfoFile << packageInfoContent
}
}
}
}
generatePackageInfo.finalizedBy(licenseFormat)

jacocoTestReport { jacocoTestReport {
reports { reports {
xml.required = true xml.required = true
} }
} }


static def applyPackageInfoTemplate(packageName) {
def engine = new SimpleTemplateEngine()
def templateText = "@ParametersAreNonnullByDefault\n" +
"package $packageName;\n" +
"\n" +
"import javax.annotation.ParametersAreNonnullByDefault;\n"
def templateParams = ["packageName": packageName]
engine.createTemplate(templateText).make(templateParams).toString()
}

gradle.projectsEvaluated { gradle -> gradle.projectsEvaluated { gradle ->
// yarn_run tasks can't all run in parallel without random issues // yarn_run tasks can't all run in parallel without random issues
// this script ensure all yarn_run tasks run sequentially // this script ensure all yarn_run tasks run sequentially

+ 1
- 0
plugins/sonar-education-plugin/build.gradle Целия файл



dependencies { dependencies {
compileOnlyApi 'org.sonarsource.api.plugin:sonar-plugin-api' compileOnlyApi 'org.sonarsource.api.plugin:sonar-plugin-api'
compileOnlyApi 'com.google.code.findbugs:jsr305'
implementation 'commons-io:commons-io' implementation 'commons-io:commons-io'


testImplementation 'junit:junit' testImplementation 'junit:junit'

+ 1
- 0
ut-monitoring/build.gradle Целия файл

api 'org.sonarsource.api.plugin:sonar-plugin-api' api 'org.sonarsource.api.plugin:sonar-plugin-api'


compileOnlyApi 'org.aspectj:aspectjtools' compileOnlyApi 'org.aspectj:aspectjtools'
compileOnlyApi 'com.google.code.findbugs:jsr305'
} }


tasks.withType(JavaCompile) { tasks.withType(JavaCompile) {

Loading…
Отказ
Запис