mirror of
https://github.com/2006-Scape/apollo.git
synced 2026-07-07 08:39:17 +00:00
Remove apollo-plugin Gradle plugin
Replaces the old Gradle plugin with plain Gradle buildscripts. Also cleans-up the current Gradle extensions and re-adds detekt, along with JUnit 5 support to all modules.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
def detektAggregateReport = "$rootDir/reports/detekt-report.xml"
|
||||
|
||||
detekt {
|
||||
version = detektVersion
|
||||
|
||||
defaultProfile {
|
||||
output = file("$buildDir/reports")
|
||||
outputName = "detekt-report"
|
||||
config = file("$rootDir/gradle/config/detekt.yml")
|
||||
parallel = true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
detekt group: 'io.gitlab.arturbosch.detekt', name: 'detekt-formatting', version: detektVersion
|
||||
}
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.kotlin.detekt.reportPaths", detektAggregateReport
|
||||
}
|
||||
}
|
||||
|
||||
tasks["sonarqube"].dependsOn(detektCheck)
|
||||
@@ -0,0 +1,474 @@
|
||||
autoCorrect: true
|
||||
failFast: false
|
||||
|
||||
test-pattern: # Configure exclusions for test sources
|
||||
active: true
|
||||
patterns: # Test file regexes
|
||||
- '.*/test/.*'
|
||||
- '.*Test.kt'
|
||||
- '.*Spec.kt'
|
||||
exclude-rule-sets:
|
||||
- 'comments'
|
||||
exclude-rules:
|
||||
- 'NamingRules'
|
||||
- 'WildcardImport'
|
||||
- 'MagicNumber'
|
||||
- 'MaxLineLength'
|
||||
- 'LateinitUsage'
|
||||
- 'StringLiteralDuplication'
|
||||
- 'SpreadOperator'
|
||||
- 'TooManyFunctions'
|
||||
- 'ForEachOnRange'
|
||||
|
||||
build:
|
||||
maxIssues: -1
|
||||
weights:
|
||||
# complexity: 2
|
||||
# LongParameterList: 1
|
||||
# style: 1
|
||||
# comments: 1
|
||||
|
||||
processors:
|
||||
active: true
|
||||
exclude:
|
||||
# - 'FunctionCountProcessor'
|
||||
# - 'PropertyCountProcessor'
|
||||
# - 'ClassCountProcessor'
|
||||
# - 'PackageCountProcessor'
|
||||
# - 'KtFileCountProcessor'
|
||||
|
||||
console-reports:
|
||||
active: true
|
||||
exclude:
|
||||
# - 'ProjectStatisticsReport'
|
||||
# - 'ComplexityReport'
|
||||
# - 'NotificationReport'
|
||||
# - 'FindingsReport'
|
||||
# - 'BuildFailureReport'
|
||||
|
||||
output-reports:
|
||||
active: true
|
||||
exclude:
|
||||
# - 'HtmlOutputReport'
|
||||
# - 'PlainOutputReport'
|
||||
# - 'XmlOutputReport'
|
||||
|
||||
comments:
|
||||
active: true
|
||||
CommentOverPrivateFunction:
|
||||
active: false
|
||||
CommentOverPrivateProperty:
|
||||
active: false
|
||||
EndOfSentenceFormat:
|
||||
active: false
|
||||
endOfSentenceFormat: ([.?!][ \t\n\r\f<])|([.?!]$)
|
||||
UndocumentedPublicClass:
|
||||
active: false
|
||||
searchInNestedClass: true
|
||||
searchInInnerClass: true
|
||||
searchInInnerObject: true
|
||||
searchInInnerInterface: true
|
||||
UndocumentedPublicFunction:
|
||||
active: false
|
||||
|
||||
complexity:
|
||||
active: true
|
||||
ComplexCondition:
|
||||
active: false
|
||||
threshold: 4
|
||||
ComplexInterface:
|
||||
active: false
|
||||
threshold: 10
|
||||
includeStaticDeclarations: false
|
||||
ComplexMethod:
|
||||
active: false
|
||||
threshold: 10
|
||||
ignoreSingleWhenExpression: false
|
||||
LabeledExpression:
|
||||
active: false
|
||||
LargeClass:
|
||||
active: true
|
||||
threshold: 150
|
||||
LongMethod:
|
||||
active: false
|
||||
threshold: 20
|
||||
LongParameterList:
|
||||
active: false
|
||||
threshold: 6
|
||||
ignoreDefaultParameters: false
|
||||
MethodOverloading:
|
||||
active: false
|
||||
threshold: 6
|
||||
NestedBlockDepth:
|
||||
active: true
|
||||
threshold: 4
|
||||
StringLiteralDuplication:
|
||||
active: false
|
||||
threshold: 3
|
||||
ignoreAnnotation: true
|
||||
excludeStringsWithLessThan5Characters: true
|
||||
ignoreStringsRegex: '$^'
|
||||
TooManyFunctions:
|
||||
active: true
|
||||
thresholdInFiles: 11
|
||||
thresholdInClasses: 11
|
||||
thresholdInInterfaces: 11
|
||||
thresholdInObjects: 11
|
||||
thresholdInEnums: 11
|
||||
ignoreDeprecated: false
|
||||
ignorePrivate: false
|
||||
|
||||
empty-blocks:
|
||||
active: true
|
||||
EmptyCatchBlock:
|
||||
active: true
|
||||
allowedExceptionNameRegex: "^(_|(ignore|expected).*)"
|
||||
EmptyClassBlock:
|
||||
active: true
|
||||
EmptyDefaultConstructor:
|
||||
active: true
|
||||
EmptyDoWhileBlock:
|
||||
active: true
|
||||
EmptyElseBlock:
|
||||
active: true
|
||||
EmptyFinallyBlock:
|
||||
active: true
|
||||
EmptyForBlock:
|
||||
active: true
|
||||
EmptyFunctionBlock:
|
||||
active: true
|
||||
ignoreOverriddenFunctions: false
|
||||
EmptyIfBlock:
|
||||
active: true
|
||||
EmptyInitBlock:
|
||||
active: true
|
||||
EmptyKtFile:
|
||||
active: true
|
||||
EmptySecondaryConstructor:
|
||||
active: true
|
||||
EmptyWhenBlock:
|
||||
active: true
|
||||
EmptyWhileBlock:
|
||||
active: true
|
||||
|
||||
exceptions:
|
||||
active: true
|
||||
ExceptionRaisedInUnexpectedLocation:
|
||||
active: false
|
||||
methodNames: 'toString,hashCode,equals,finalize'
|
||||
InstanceOfCheckForException:
|
||||
active: false
|
||||
NotImplementedDeclaration:
|
||||
active: false
|
||||
PrintStackTrace:
|
||||
active: false
|
||||
RethrowCaughtException:
|
||||
active: false
|
||||
ReturnFromFinally:
|
||||
active: false
|
||||
SwallowedException:
|
||||
active: false
|
||||
ThrowingExceptionFromFinally:
|
||||
active: false
|
||||
ThrowingExceptionInMain:
|
||||
active: false
|
||||
ThrowingExceptionsWithoutMessageOrCause:
|
||||
active: false
|
||||
exceptions: 'IllegalArgumentException,IllegalStateException,IOException'
|
||||
ThrowingNewInstanceOfSameException:
|
||||
active: false
|
||||
TooGenericExceptionCaught:
|
||||
active: true
|
||||
exceptionNames:
|
||||
- ArrayIndexOutOfBoundsException
|
||||
- Error
|
||||
- Exception
|
||||
- IllegalMonitorStateException
|
||||
- NullPointerException
|
||||
- IndexOutOfBoundsException
|
||||
- RuntimeException
|
||||
- Throwable
|
||||
TooGenericExceptionThrown:
|
||||
active: true
|
||||
exceptionNames:
|
||||
- Error
|
||||
- Exception
|
||||
- Throwable
|
||||
- RuntimeException
|
||||
|
||||
formatting:
|
||||
active: true
|
||||
android: false
|
||||
autoCorrect: true
|
||||
ChainWrapping:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
CommentSpacing:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
Filename:
|
||||
active: true
|
||||
FinalNewline:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
ImportOrdering:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
Indentation:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
indentSize: 4
|
||||
continuationIndentSize: 4
|
||||
MaximumLineLength:
|
||||
active: false
|
||||
ModifierOrdering:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoBlankLineBeforeRbrace:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoConsecutiveBlankLines:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoEmptyClassBody:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoItParamInMultilineLambda:
|
||||
active: false
|
||||
NoLineBreakAfterElse:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoLineBreakBeforeAssignment:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoMultipleSpaces:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoSemicolons:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoTrailingSpaces:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoUnitReturn:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoUnusedImports:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
NoWildcardImports:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
ParameterListWrapping:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
indentSize: 4
|
||||
SpacingAroundColon:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
SpacingAroundComma:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
SpacingAroundCurly:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
SpacingAroundKeyword:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
SpacingAroundOperators:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
SpacingAroundRangeOperator:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
StringTemplate:
|
||||
active: true
|
||||
autoCorrect: true
|
||||
|
||||
naming:
|
||||
active: true
|
||||
ClassNaming:
|
||||
active: true
|
||||
classPattern: '[A-Z$][a-zA-Z0-9$]*'
|
||||
EnumNaming:
|
||||
active: true
|
||||
enumEntryPattern: '^[A-Z][_a-zA-Z0-9]*'
|
||||
ForbiddenClassName:
|
||||
active: false
|
||||
forbiddenName: ''
|
||||
FunctionMaxLength:
|
||||
active: false
|
||||
maximumFunctionNameLength: 30
|
||||
FunctionMinLength:
|
||||
active: false
|
||||
minimumFunctionNameLength: 3
|
||||
FunctionNaming:
|
||||
active: true
|
||||
functionPattern: '^([a-z$][a-zA-Z$0-9]*)|(`.*`)$'
|
||||
excludeClassPattern: '$^'
|
||||
MatchingDeclarationName:
|
||||
active: true
|
||||
MemberNameEqualsClassName:
|
||||
active: false
|
||||
ignoreOverriddenFunction: true
|
||||
ObjectPropertyNaming:
|
||||
active: true
|
||||
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||
constantPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||
PackageNaming:
|
||||
active: true
|
||||
packagePattern: '^[a-z]+(\.[a-z][a-z0-9]*)*$'
|
||||
TopLevelPropertyNaming:
|
||||
active: false
|
||||
constantPattern: '[A-Z][_A-Z0-9]*'
|
||||
propertyPattern: '[A-Za-z][_A-Za-z0-9]*'
|
||||
privatePropertyPattern: '(_)?[A-Za-z][A-Za-z0-9]*'
|
||||
VariableMaxLength:
|
||||
active: false
|
||||
maximumVariableNameLength: 64
|
||||
VariableMinLength:
|
||||
active: false
|
||||
minimumVariableNameLength: 1
|
||||
VariableNaming:
|
||||
active: false
|
||||
variablePattern: '[a-z][A-Za-z0-9]*'
|
||||
privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*'
|
||||
excludeClassPattern: '$^'
|
||||
|
||||
performance:
|
||||
active: true
|
||||
ForEachOnRange:
|
||||
active: true
|
||||
SpreadOperator:
|
||||
active: true
|
||||
UnnecessaryTemporaryInstantiation:
|
||||
active: true
|
||||
|
||||
potential-bugs:
|
||||
active: true
|
||||
DuplicateCaseInWhenExpression:
|
||||
active: true
|
||||
EqualsAlwaysReturnsTrueOrFalse:
|
||||
active: false
|
||||
EqualsWithHashCodeExist:
|
||||
active: true
|
||||
ExplicitGarbageCollectionCall:
|
||||
active: true
|
||||
InvalidRange:
|
||||
active: false
|
||||
IteratorHasNextCallsNextMethod:
|
||||
active: false
|
||||
IteratorNotThrowingNoSuchElementException:
|
||||
active: false
|
||||
LateinitUsage:
|
||||
active: false
|
||||
excludeAnnotatedProperties: ""
|
||||
ignoreOnClassesPattern: ""
|
||||
UnconditionalJumpStatementInLoop:
|
||||
active: false
|
||||
UnreachableCode:
|
||||
active: true
|
||||
UnsafeCallOnNullableType:
|
||||
active: false
|
||||
UnsafeCast:
|
||||
active: false
|
||||
UselessPostfixExpression:
|
||||
active: false
|
||||
WrongEqualsTypeParameter:
|
||||
active: false
|
||||
|
||||
style:
|
||||
active: true
|
||||
CollapsibleIfStatements:
|
||||
active: false
|
||||
DataClassContainsFunctions:
|
||||
active: false
|
||||
conversionFunctionPrefix: 'to'
|
||||
EqualsNullCall:
|
||||
active: false
|
||||
ExpressionBodySyntax:
|
||||
active: false
|
||||
includeLineWrapping: false
|
||||
ForbiddenComment:
|
||||
active: true
|
||||
values: 'TODO:,FIXME:,STOPSHIP:'
|
||||
ForbiddenImport:
|
||||
active: false
|
||||
imports: ''
|
||||
FunctionOnlyReturningConstant:
|
||||
active: false
|
||||
ignoreOverridableFunction: true
|
||||
excludedFunctions: 'describeContents'
|
||||
LoopWithTooManyJumpStatements:
|
||||
active: false
|
||||
maxJumpCount: 1
|
||||
MagicNumber:
|
||||
active: false
|
||||
MandatoryBracesIfStatements:
|
||||
active: false
|
||||
MaxLineLength:
|
||||
active: false
|
||||
maxLineLength: 120
|
||||
excludePackageStatements: false
|
||||
excludeImportStatements: false
|
||||
excludeCommentStatements: false
|
||||
MayBeConst:
|
||||
active: false
|
||||
ModifierOrder:
|
||||
active: true
|
||||
NestedClassesVisibility:
|
||||
active: false
|
||||
NewLineAtEndOfFile:
|
||||
active: false
|
||||
NoTabs:
|
||||
active: true
|
||||
OptionalAbstractKeyword:
|
||||
active: true
|
||||
OptionalUnit:
|
||||
active: false
|
||||
OptionalWhenBraces:
|
||||
active: false
|
||||
PreferToOverPairSyntax:
|
||||
active: false
|
||||
ProtectedMemberInFinalClass:
|
||||
active: false
|
||||
RedundantVisibilityModifierRule:
|
||||
active: false
|
||||
ReturnCount:
|
||||
active: true
|
||||
max: 2
|
||||
excludedFunctions: "equals"
|
||||
SafeCast:
|
||||
active: true
|
||||
SerialVersionUIDInSerializableClass:
|
||||
active: false
|
||||
SpacingBetweenPackageAndImports:
|
||||
active: false
|
||||
ThrowsCount:
|
||||
active: true
|
||||
max: 2
|
||||
TrailingWhitespace:
|
||||
active: false
|
||||
UnnecessaryAbstractClass:
|
||||
active: false
|
||||
UnnecessaryInheritance:
|
||||
active: false
|
||||
UnnecessaryParentheses:
|
||||
active: false
|
||||
UntilInsteadOfRangeTo:
|
||||
active: false
|
||||
UnusedImports:
|
||||
active: false
|
||||
UnusedPrivateMember:
|
||||
active: false
|
||||
allowedNames: "(_|ignored|expected)"
|
||||
UseDataClass:
|
||||
active: false
|
||||
excludeAnnotatedClasses: ""
|
||||
UtilityClassWithPublicConstructor:
|
||||
active: false
|
||||
VarCouldBeVal:
|
||||
active: false
|
||||
WildcardImport:
|
||||
active: true
|
||||
excludeImports: 'java.util.*,kotlinx.android.synthetic.*'
|
||||
@@ -1,10 +1 @@
|
||||
apply plugin: 'org.jmailen.kotlinter'
|
||||
|
||||
kotlinter {
|
||||
ignoreFailures = true
|
||||
indentSize = 4
|
||||
continuationIndentSize = 4
|
||||
reporters = ['checkstyle', 'plain']
|
||||
}
|
||||
|
||||
kotlin { experimental { coroutines 'enable' } }
|
||||
|
||||
@@ -16,4 +16,5 @@ ext {
|
||||
junitJupiterVersion = '5.1.0'
|
||||
mockkVersion = '1.7.15'
|
||||
assertkVersion = '0.9'
|
||||
detektVersion = '1.0.0.RC8'
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
apply plugin: 'jacoco'
|
||||
|
||||
def testedProjects() {
|
||||
subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') }
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
configure(testedProjects()) {
|
||||
apply plugin: 'jacoco'
|
||||
|
||||
jacoco {
|
||||
toolVersion = '0.8.1'
|
||||
}
|
||||
|
||||
jacocoTestReport {
|
||||
sourceDirectories = files(sourceSets.main.allSource.srcDirs)
|
||||
classDirectories = files(sourceSets.main.output)
|
||||
}
|
||||
|
||||
test {
|
||||
reports {
|
||||
junitXml.enabled = true
|
||||
html.enabled = false
|
||||
}
|
||||
|
||||
jacoco {
|
||||
append = false
|
||||
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
|
||||
classDumpDir = file("$buildDir/jacoco/classpathdumps")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
task jacocoTestReport(type: JacocoReport) {
|
||||
def tests = []
|
||||
def sourceDirs = files()
|
||||
def classDirs = files()
|
||||
def execData = files()
|
||||
|
||||
reports {
|
||||
xml.enabled = true
|
||||
html.enabled = false
|
||||
}
|
||||
|
||||
testedProjects().each { subproject ->
|
||||
sourceDirs += files(subproject.sourceSets.main.allSource.srcDirs)
|
||||
classDirs += files(subproject.sourceSets.main.output)
|
||||
execData += files(subproject.tasks.jacocoTestReport.executionData.findAll {
|
||||
it.exists()
|
||||
})
|
||||
|
||||
tests += subproject.tasks.test
|
||||
}
|
||||
|
||||
dependsOn tests
|
||||
sourceDirectories = sourceDirs
|
||||
classDirectories = classDirs
|
||||
executionData = execData
|
||||
}
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.organization", "apollo-rsps"
|
||||
property "sonar.projectKey", "apollo:org.apollo"
|
||||
property "sonar.projectName", "Apollo RSPS"
|
||||
property "sonar.kotlin.file.suffixes", ".kt,.kts"
|
||||
}
|
||||
}
|
||||
|
||||
project.tasks["sonarqube"].dependsOn(jacocoTestReport)
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
apply plugin: 'jacoco'
|
||||
|
||||
def jacocoCoverageAggregate = "$buildDir/jacoco/jacocoTestAll.exec"
|
||||
|
||||
def testedProjects() {
|
||||
subprojects.findAll { subproject -> subproject.plugins.hasPlugin('java') || subproject.plugins.hasPlugin('kotlin') }
|
||||
}
|
||||
|
||||
configure(testedProjects()) {
|
||||
|
||||
jacoco {
|
||||
toolVersion = '0.8.1'
|
||||
}
|
||||
|
||||
jacocoTestReport {
|
||||
sourceDirectories = files(sourceSets.main.allSource.srcDirs)
|
||||
classDirectories = files(sourceSets.main.output)
|
||||
}
|
||||
|
||||
test {
|
||||
reports {
|
||||
junitXml.enabled = true
|
||||
html.enabled = false
|
||||
}
|
||||
|
||||
jacoco {
|
||||
append = false
|
||||
destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
|
||||
classDumpDir = file("$buildDir/jacoco/classpathdumps")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
task jacocoMerge(type: JacocoMerge) {
|
||||
destinationFile = file(jacocoCoverageAggregate)
|
||||
executionData = project.fileTree(dir: '.', include: '**/build/jacoco/test.exec')
|
||||
}
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.organization", "apollo-rsps"
|
||||
property "sonar.projectKey", "apollo:org.apollo"
|
||||
property "sonar.projectName", "Apollo RSPS"
|
||||
property "sonar.kotlin.file.suffixes", ".kt,.kts"
|
||||
property "sonar.jacoco.reportPaths", jacocoCoverageAggregate
|
||||
}
|
||||
}
|
||||
|
||||
tasks["sonarqube"].dependsOn(jacocoMerge)
|
||||
|
||||
Reference in New Issue
Block a user