-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
90 lines (78 loc) · 3.53 KB
/
build.gradle.kts
File metadata and controls
90 lines (78 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
* Copyright 2008-present MongoDB, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.time.Duration
import org.cyclonedx.model.*
plugins {
id("eclipse")
id("idea")
alias(libs.plugins.nexus.publish)
id("org.cyclonedx.bom") version "2.3.1"
}
val nexusUsername: Provider<String> = providers.gradleProperty("nexusUsername")
val nexusPassword: Provider<String> = providers.gradleProperty("nexusPassword")
nexusPublishing {
packageGroup.set("org.mongodb")
repositories {
sonatype {
username.set(nexusUsername)
password.set(nexusPassword)
// central portal URLs
nexusUrl.set(uri("https://ossrh-staging-api.central.sonatype.com/service/local/"))
snapshotRepositoryUrl.set(uri("https://central.sonatype.com/repository/maven-snapshots/"))
}
}
connectTimeout.set(Duration.ofMinutes(5))
clientTimeout.set(Duration.ofMinutes(30))
transitionCheckOptions {
// We have many artifacts and Maven Central can take a long time on its compliance checks.
// Set the timeout for waiting for the repository to close to a comfortable 50 minutes.
maxRetries.set(300)
delayBetween.set(Duration.ofSeconds(10))
}
}
tasks.cyclonedxBom {
setGroup("org.mongodb")
// includeConfigs is the list of configuration names to include when generating the BOM (leave empty to include every configuration), regex is supported
setIncludeConfigs(listOf("runtimeClasspath","baseline"))
// skipConfigs is a list of configuration names to exclude when generating the BOM, regex is supported
//setSkipConfigs(listOf("(?i)(.*(compile|test|checkstyle|codenarc|spotbugs|detekt|analysis|zinc|dokka|commonizer|implementation|annotation).*)"))
// skipProjects is a list of project names to exclude when generating the BOM
setSkipProjects(listOf(rootProject.name, "bom"))
// Specified the type of project being built. Defaults to 'library'
setProjectType("library")
// Specified the version of the CycloneDX specification to use. Defaults to '1.6'
setSchemaVersion("1.5")
// Boms destination directory. Defaults to 'build/reports'
setDestination(project.file("./"))
// The file name for the generated BOMs (before the file format suffix). Defaults to 'bom'
setOutputName("sbom")
// The file format generated, can be xml, json or all for generating both. Defaults to 'all'
setOutputFormat("json")
// declaration of the Object from OrganizationalContact
var organizationalContact1 = OrganizationalContact()
// setting the Name[String], Email[String] and Phone[String] of the Object
organizationalContact1.setName("MongoDB, Inc.")
// passing data to the plugin
setOrganizationalEntity { oe ->
oe.name = "MongoDB, Inc."
oe.urls = listOf("www.mongodb.com")
oe.addContact(organizationalContact1)
}
// Configure VCS external reference with proper HTTPS URL
setVCSGit { vcs ->
vcs.url = "https://github.com/mongodb/mongo-java-driver.git"
}
}