chore: ライセンスの確認をするように

This commit is contained in:
usbharu 2024-02-18 12:06:44 +09:00
parent 1855db9f9b
commit 3ba832b0d5
4 changed files with 240 additions and 4 deletions

25
allowed-licenses.json Normal file
View File

@ -0,0 +1,25 @@
{
"allowedLicenses": [
{
"moduleLicense": "Apache License, Version 2.0"
},
{
"moduleLicense": "MIT License"
},
{
"moduleLicense": "MIT-0"
},
{
"moduleLicense": "The BSD License"
},
{
"moduleLicense": "PUBLIC DOMAIN"
},
{
"moduleLicense": "The 2-Clause BSD License"
},
{
"moduleLicense": "GNU GENERAL PUBLIC LICENSE, Version 2 + Classpath Exception"
}
]
}

View File

@ -1,3 +1,8 @@
import com.github.jk1.license.filter.DependencyFilter
import com.github.jk1.license.filter.LicenseBundleNormalizer
import com.github.jk1.license.importer.DependencyDataImporter
import com.github.jk1.license.importer.XmlReportImporter
import com.github.jk1.license.render.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.openapitools.generator.gradle.plugin.tasks.GenerateTask import org.openapitools.generator.gradle.plugin.tasks.GenerateTask
@ -18,6 +23,8 @@ plugins {
kotlin("plugin.spring") version "1.9.22" kotlin("plugin.spring") version "1.9.22"
id("org.openapi.generator") version "7.2.0" id("org.openapi.generator") version "7.2.0"
id("org.jetbrains.kotlinx.kover") version "0.7.4" id("org.jetbrains.kotlinx.kover") version "0.7.4"
id("com.github.jk1.dependency-license-report") version "2.5"
} }
apply { apply {
@ -177,9 +184,8 @@ dependencies {
implementation("io.ktor:ktor-serialization-jackson:$ktor_version") implementation("io.ktor:ktor-serialization-jackson:$ktor_version")
implementation("org.jetbrains.exposed:exposed-core:$exposed_version") implementation("org.jetbrains.exposed:exposed-core:$exposed_version")
implementation("org.jetbrains.exposed:exposed-jdbc:$exposed_version") implementation("org.jetbrains.exposed:exposed-jdbc:$exposed_version")
implementation("com.h2database:h2:$h2_version") developmentOnly("com.h2database:h2:$h2_version")
implementation("org.xerial:sqlite-jdbc:3.45.1.0") implementation("org.xerial:sqlite-jdbc:3.45.1.0")
implementation("ch.qos.logback:logback-classic:$logback_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serialization_version") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:$serialization_version")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization_version") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization_version")
@ -190,8 +196,9 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("org.springframework.boot:spring-boot-starter-oauth2-authorization-server") implementation("org.springframework.boot:spring-boot-starter-oauth2-authorization-server")
implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server") implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server")
implementation("jakarta.validation:jakarta.validation-api") implementation("org.springframework.boot:spring-boot-starter-log4j2")
implementation("jakarta.annotation:jakarta.annotation-api:2.1.0") compileOnly("jakarta.validation:jakarta.validation-api")
compileOnly("jakarta.annotation:jakarta.annotation-api:2.1.0")
compileOnly("io.swagger.core.v3:swagger-annotations:2.2.6") compileOnly("io.swagger.core.v3:swagger-annotations:2.2.6")
implementation("io.swagger.core.v3:swagger-models:2.2.6") implementation("io.swagger.core.v3:swagger-models:2.2.6")
implementation("org.jetbrains.exposed:exposed-java-time:$exposed_version") implementation("org.jetbrains.exposed:exposed-java-time:$exposed_version")
@ -304,6 +311,12 @@ configurations.matching { it.name == "detekt" }.all {
} }
} }
configurations {
all {
exclude("org.springframework.boot", "spring-boot-starter-logging")
}
}
project.gradle.taskGraph.whenReady { project.gradle.taskGraph.whenReady {
println(this.allTasks) println(this.allTasks)
this.allTasks.map { println(it.name) } this.allTasks.map { println(it.name) }
@ -347,3 +360,19 @@ koverReport {
springBoot { springBoot {
buildInfo() buildInfo()
} }
licenseReport {
excludeOwnGroup = true
importers = arrayOf<DependencyDataImporter>(XmlReportImporter("hideout", File("$projectDir/license-list.xml")))
renderers = arrayOf<ReportRenderer>(
InventoryHtmlReportRenderer(),
CsvReportRenderer(),
JsonReportRenderer(),
XmlReportRenderer()
)
filters = arrayOf<DependencyFilter>(LicenseBundleNormalizer("$projectDir/license-normalizer-bundle.json", true))
allowedLicensesFile = File("$projectDir/allowed-licenses.json")
configurations = arrayOf("productionRuntimeClasspath")
}

126
license-list.xml Normal file
View File

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic SYSTEM "html-entities.dtd">
<topic xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="topic.v2.xsd" id="hideout"
title="hideout">
<chunk include-id="hideout">
<chapter title="hideout" id="hideout">
<table>
<tr>
<td>Project</td>
<td>Version</td>
<td>License</td>
</tr>
<tr>
<td>com.fasterxml.jackson:jackson-bom</td>
<td>2.15.3</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-client-cio</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-client-content-negotiation</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-client-core</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-events</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-http</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-http-cio</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-io</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-network</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-network-tls</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-serialization</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-serialization-jackson</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-utils</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-websocket-serialization</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>io.ktor:ktor-websockets</td>
<td>2.3.8</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.apache.tika:tika-parsers</td>
<td>2.9.1</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlin:kotlin-stdlib-common</td>
<td>1.9.22</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlinx:kotlinx-coroutines-bom</td>
<td>1.7.3</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlinx:kotlinx-coroutines-core</td>
<td>1.7.3</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlinx:kotlinx-serialization-bom</td>
<td>1.6.2</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlinx:kotlinx-serialization-core</td>
<td>1.6.2</td>
<td>Apache License, Version 2.0</td>
</tr>
<tr>
<td>org.jetbrains.kotlinx:kotlinx-serialization-json</td>
<td>1.6.2</td>
<td>Apache License, Version 2.0</td>
</tr>
</table>
</chapter>
</chunk>
</topic>

View File

@ -0,0 +1,56 @@
{
"bundles": [
{
"bundleName": "Apache-2.0",
"licenseName": "Apache License, Version 2.0",
"licenseUrl": "https://www.apache.org/licenses/LICENSE-2.0.txt"
},
{
"bundleName": "EPL-1.0",
"licenseName": "Eclipse Public License - v 1.0",
"licenseUrl": "http://www.eclipse.org/legal/epl-v10.html"
}
],
"transformationRules": [
{
"bundleName": "Apache-2.0",
"licenseNamePattern": ".*The Apache Software License, Version 2.0.*"
},
{
"bundleName": "Apache-2.0",
"licenseNamePattern": "Apache 2"
},
{
"bundleName": "Apache-2.0",
"licenseUrlPattern": "http://www.apache.org/licenses/LICENSE-2.0.txt"
},
{
"bundleName": "Apache-2.0",
"licenseUrlPattern": "https://www.apache.org/licenses/LICENSE-2.0"
},
{
"bundleName": "Apache-2.0",
"licenseUrlPattern": "https://aws.amazon.com/apache2.0"
},
{
"bundleName": "Apache-2.0",
"licenseUrlPattern": "https://www.apache.org/licenses/LICENSE-2.0.txt"
},
{
"bundleName": "Apache-2.0",
"licenseNamePattern": "Special Apache"
},
{
"bundleName": "Apache-2.0",
"licenseNamePattern": "Keep this name"
},
{
"bundleName": "Apache-2.0",
"licenseNamePattern": "The Apache Software License, Version 2.0"
},
{
"bundleName": "EPL-1.0",
"licenseNamePattern": "EPL 1.0"
}
]
}