mirror of
https://github.com/tadfisher/gradle2nix.git
synced 2026-01-11 23:40:37 -05:00
Rewrite plugin, use filenames in lockfile
This commit is contained in:
@@ -4,26 +4,28 @@ plugins {
|
|||||||
application
|
application
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations.register("share")
|
||||||
register("share")
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("reflect"))
|
|
||||||
implementation(project(":model"))
|
implementation(project(":model"))
|
||||||
implementation(libs.clikt)
|
implementation(libs.clikt)
|
||||||
implementation(libs.gradle.toolingApi)
|
implementation(libs.gradle.toolingApi)
|
||||||
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
|
implementation(libs.okio)
|
||||||
implementation(libs.serialization.json)
|
implementation(libs.serialization.json)
|
||||||
implementation(libs.slf4j.api)
|
implementation(libs.slf4j.api)
|
||||||
runtimeOnly(libs.slf4j.simple)
|
runtimeOnly(libs.slf4j.simple)
|
||||||
implementation(libs.okio)
|
|
||||||
implementation(libs.xmlutil)
|
implementation(libs.xmlutil)
|
||||||
|
|
||||||
"share"(project(":plugin", configuration = "shadow"))
|
"share"(project(":plugin", configuration = "shadow")) {
|
||||||
|
isTransitive = false
|
||||||
|
}
|
||||||
|
|
||||||
testRuntimeOnly(kotlin("reflect"))
|
//testRuntimeOnly(kotlin("reflect"))
|
||||||
testImplementation(libs.kotest.assertions)
|
testImplementation(libs.kotest.assertions)
|
||||||
testImplementation(libs.kotest.runner)
|
testImplementation(libs.kotest.runner)
|
||||||
|
testImplementation(libs.ktor.server.core)
|
||||||
|
testImplementation(libs.ktor.server.netty)
|
||||||
}
|
}
|
||||||
|
|
||||||
application {
|
application {
|
||||||
@@ -36,10 +38,6 @@ application {
|
|||||||
.rename("plugin.*\\.jar", "plugin.jar")
|
.rename("plugin.*\\.jar", "plugin.jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
|
||||||
jvmToolchain(11)
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
test {
|
test {
|
||||||
resources {
|
resources {
|
||||||
@@ -80,7 +78,7 @@ tasks {
|
|||||||
}
|
}
|
||||||
systemProperties(
|
systemProperties(
|
||||||
"org.nixos.gradle2nix.share" to installDist.get().destinationDir.resolve("share"),
|
"org.nixos.gradle2nix.share" to installDist.get().destinationDir.resolve("share"),
|
||||||
"org.nixos.gradle2nix.m2" to rootDir.resolve("fixtures/repositories/m2").toURI().toString()
|
"org.nixos.gradle2nix.m2" to "http://0.0.0.0:8989/m2"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
|||||||
@@ -1,53 +1,93 @@
|
|||||||
package org.nixos.gradle2nix
|
package org.nixos.gradle2nix
|
||||||
|
|
||||||
|
import java.io.File
|
||||||
|
import kotlin.coroutines.resume
|
||||||
|
import kotlin.coroutines.resumeWithException
|
||||||
|
import kotlin.io.path.absolutePathString
|
||||||
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||||
|
import org.gradle.tooling.GradleConnectionException
|
||||||
import org.gradle.tooling.GradleConnector
|
import org.gradle.tooling.GradleConnector
|
||||||
import org.gradle.tooling.ProjectConnection
|
import org.gradle.tooling.ProjectConnection
|
||||||
import org.nixos.gradle2nix.model.PARAM_INCLUDE_CONFIGURATIONS
|
import org.gradle.tooling.ResultHandler
|
||||||
import org.nixos.gradle2nix.model.PARAM_INCLUDE_PROJECTS
|
import org.gradle.tooling.model.gradle.GradleBuild
|
||||||
|
import org.nixos.gradle2nix.model.DependencySet
|
||||||
import org.nixos.gradle2nix.model.RESOLVE_ALL_TASK
|
import org.nixos.gradle2nix.model.RESOLVE_ALL_TASK
|
||||||
|
|
||||||
fun connect(config: Config): ProjectConnection =
|
fun connect(config: Config, projectDir: File = config.projectDir): ProjectConnection =
|
||||||
GradleConnector.newConnector()
|
GradleConnector.newConnector()
|
||||||
.apply {
|
.apply {
|
||||||
if (config.gradleVersion != null) {
|
if (config.gradleVersion != null) {
|
||||||
useGradleVersion(config.gradleVersion)
|
useGradleVersion(config.gradleVersion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.forProjectDirectory(config.projectDir)
|
.forProjectDirectory(projectDir)
|
||||||
.connect()
|
.connect()
|
||||||
|
|
||||||
fun ProjectConnection.build(
|
suspend fun ProjectConnection.buildModel(): GradleBuild = suspendCancellableCoroutine { continuation ->
|
||||||
config: Config,
|
val cancellationTokenSource = GradleConnector.newCancellationTokenSource()
|
||||||
) {
|
|
||||||
newBuild()
|
continuation.invokeOnCancellation { cancellationTokenSource.cancel() }
|
||||||
|
|
||||||
|
action { controller -> controller.buildModel }
|
||||||
|
.withCancellationToken(cancellationTokenSource.token())
|
||||||
|
.run(object : ResultHandler<GradleBuild> {
|
||||||
|
override fun onComplete(result: GradleBuild) {
|
||||||
|
continuation.resume(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFailure(failure: GradleConnectionException) {
|
||||||
|
continuation.resumeWithException(failure)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
suspend fun ProjectConnection.build(config: Config): DependencySet = suspendCancellableCoroutine { continuation ->
|
||||||
|
val cancellationTokenSource = GradleConnector.newCancellationTokenSource()
|
||||||
|
|
||||||
|
continuation.invokeOnCancellation { cancellationTokenSource.cancel() }
|
||||||
|
|
||||||
|
action { controller -> controller.getModel(DependencySet::class.java) }
|
||||||
|
.withCancellationToken(cancellationTokenSource.token())
|
||||||
.apply {
|
.apply {
|
||||||
if (config.tasks.isNotEmpty()) {
|
if (config.tasks.isNotEmpty()) {
|
||||||
forTasks(*config.tasks.toTypedArray())
|
forTasks(*config.tasks.toTypedArray())
|
||||||
} else {
|
} else {
|
||||||
forTasks(RESOLVE_ALL_TASK)
|
forTasks(RESOLVE_ALL_TASK)
|
||||||
}
|
}
|
||||||
if (config.gradleJdk != null) {
|
}
|
||||||
setJavaHome(config.gradleJdk)
|
.setJavaHome(config.gradleJdk)
|
||||||
}
|
.addArguments(config.gradleArgs)
|
||||||
addArguments(config.gradleArgs)
|
.addArguments(
|
||||||
addArguments(
|
"--no-parallel",
|
||||||
"--gradle-user-home=${config.gradleHome}",
|
"--refresh-dependencies",
|
||||||
"--init-script=${config.appHome}/init.gradle",
|
"--gradle-user-home=${config.gradleHome}",
|
||||||
"--write-verification-metadata", "sha256"
|
"--init-script=${config.appHome}/init.gradle",
|
||||||
)
|
"--write-verification-metadata", "sha256"
|
||||||
if (config.projectFilter != null) {
|
)
|
||||||
addArguments("-D$PARAM_INCLUDE_PROJECTS")
|
.apply {
|
||||||
}
|
|
||||||
if (config.configurationFilter != null) {
|
|
||||||
addArguments("-D$PARAM_INCLUDE_CONFIGURATIONS")
|
|
||||||
}
|
|
||||||
if (config.logger.verbose) {
|
|
||||||
setStandardOutput(System.err)
|
|
||||||
setStandardError(System.err)
|
|
||||||
}
|
|
||||||
if (config.logger.stacktrace) {
|
if (config.logger.stacktrace) {
|
||||||
addArguments("--stacktrace")
|
addArguments("--stacktrace")
|
||||||
}
|
}
|
||||||
|
if (config.logger.logLevel <= LogLevel.debug) {
|
||||||
|
setStandardOutput(System.err)
|
||||||
|
setStandardError(System.err)
|
||||||
|
}
|
||||||
|
if (config.dumpEvents) {
|
||||||
|
withSystemProperties(
|
||||||
|
mapOf(
|
||||||
|
"org.gradle.internal.operations.trace" to
|
||||||
|
config.outDir.toPath().resolve("debug").absolutePathString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.run()
|
.run(object : ResultHandler<DependencySet> {
|
||||||
|
override fun onComplete(result: DependencySet) {
|
||||||
|
continuation.resume(result)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onFailure(failure: GradleConnectionException) {
|
||||||
|
continuation.resumeWithException(failure)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,43 +5,44 @@ import kotlin.system.exitProcess
|
|||||||
|
|
||||||
class Logger(
|
class Logger(
|
||||||
val out: PrintStream = System.err,
|
val out: PrintStream = System.err,
|
||||||
val verbose: Boolean,
|
val logLevel: LogLevel = LogLevel.warn,
|
||||||
val stacktrace: Boolean = false
|
val stacktrace: Boolean = false,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
fun debug(message: String, error: Throwable? = null) {
|
fun debug(message: String, error: Throwable? = null) {
|
||||||
if (!stacktrace) return
|
if (logLevel <= LogLevel.debug) {
|
||||||
out.println(message)
|
out.println("[DEBUG] $message")
|
||||||
if (error == null) return
|
printError(error)
|
||||||
error.message?.let { println(" Cause: $it") }
|
}
|
||||||
error.printStackTrace(out)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun log(message: String, error: Throwable? = null) {
|
fun info(message: String, error: Throwable? = null) {
|
||||||
if (!verbose) return
|
if (logLevel <= LogLevel.info) {
|
||||||
out.println(message)
|
out.println("[INFO] $message")
|
||||||
if (error == null) return
|
printError(error)
|
||||||
error.message?.let { println(" Cause: $it") }
|
}
|
||||||
if (stacktrace) error.printStackTrace(out)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun warn(message: String, error: Throwable? = null) {
|
fun warn(message: String, error: Throwable? = null) {
|
||||||
out.println("Warning: $message")
|
if (logLevel <= LogLevel.warn) {
|
||||||
|
out.println("[WARN] $message")
|
||||||
|
printError(error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun error(message: String, error: Throwable? = null): Nothing {
|
||||||
|
out.println("[ERROR] $message")
|
||||||
|
printError(error)
|
||||||
|
exitProcess(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun printError(error: Throwable?) {
|
||||||
if (error == null) return
|
if (error == null) return
|
||||||
error.message?.let { println(" Cause: $it") }
|
error.message?.let { println(" Cause: $it") }
|
||||||
if (stacktrace) error.printStackTrace(out)
|
if (stacktrace) error.printStackTrace(out)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun error(message: String, error: Throwable? = null): Nothing {
|
operator fun component1() = ::info
|
||||||
out.println("Error: $message")
|
|
||||||
if (error != null) {
|
|
||||||
error.message?.let { println(" Cause: $it") }
|
|
||||||
if (stacktrace) error.printStackTrace(out)
|
|
||||||
}
|
|
||||||
exitProcess(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
operator fun component1() = ::log
|
|
||||||
operator fun component2() = ::warn
|
operator fun component2() = ::warn
|
||||||
operator fun component3() = ::error
|
operator fun component3() = ::error
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,11 +10,16 @@ import com.github.ajalt.clikt.parameters.options.flag
|
|||||||
import com.github.ajalt.clikt.parameters.options.multiple
|
import com.github.ajalt.clikt.parameters.options.multiple
|
||||||
import com.github.ajalt.clikt.parameters.options.option
|
import com.github.ajalt.clikt.parameters.options.option
|
||||||
import com.github.ajalt.clikt.parameters.options.validate
|
import com.github.ajalt.clikt.parameters.options.validate
|
||||||
|
import com.github.ajalt.clikt.parameters.types.choice
|
||||||
|
import com.github.ajalt.clikt.parameters.types.enum
|
||||||
import com.github.ajalt.clikt.parameters.types.file
|
import com.github.ajalt.clikt.parameters.types.file
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import kotlinx.serialization.json.encodeToStream
|
import kotlinx.serialization.json.encodeToStream
|
||||||
|
import org.gradle.tooling.model.gradle.GradleBuild
|
||||||
|
import org.nixos.gradle2nix.model.DependencySet
|
||||||
|
|
||||||
data class Config(
|
data class Config(
|
||||||
val appHome: File,
|
val appHome: File,
|
||||||
@@ -22,11 +27,11 @@ data class Config(
|
|||||||
val gradleVersion: String?,
|
val gradleVersion: String?,
|
||||||
val gradleJdk: File?,
|
val gradleJdk: File?,
|
||||||
val gradleArgs: List<String>,
|
val gradleArgs: List<String>,
|
||||||
val projectFilter: String?,
|
val outDir: File,
|
||||||
val configurationFilter: String?,
|
|
||||||
val projectDir: File,
|
val projectDir: File,
|
||||||
val tasks: List<String>,
|
val tasks: List<String>,
|
||||||
val logger: Logger,
|
val logger: Logger,
|
||||||
|
val dumpEvents: Boolean
|
||||||
)
|
)
|
||||||
|
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
@OptIn(ExperimentalSerializationApi::class)
|
||||||
@@ -36,6 +41,13 @@ val JsonFormat = Json {
|
|||||||
prettyPrintIndent = " "
|
prettyPrintIndent = " "
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class LogLevel {
|
||||||
|
debug,
|
||||||
|
info,
|
||||||
|
warn,
|
||||||
|
error,
|
||||||
|
}
|
||||||
|
|
||||||
class Gradle2Nix : CliktCommand(
|
class Gradle2Nix : CliktCommand(
|
||||||
name = "gradle2nix"
|
name = "gradle2nix"
|
||||||
) {
|
) {
|
||||||
@@ -51,17 +63,6 @@ class Gradle2Nix : CliktCommand(
|
|||||||
help = "JDK home directory to use for launching Gradle (default: ${System.getProperty("java.home")})"
|
help = "JDK home directory to use for launching Gradle (default: ${System.getProperty("java.home")})"
|
||||||
).file(canBeFile = false, canBeDir = true)
|
).file(canBeFile = false, canBeDir = true)
|
||||||
|
|
||||||
private val projectFilter: String? by option(
|
|
||||||
"--projects", "-p",
|
|
||||||
metavar = "REGEX",
|
|
||||||
help = "Regex to filter Gradle projects (default: include all projects)"
|
|
||||||
)
|
|
||||||
|
|
||||||
private val configurationFilter: String? by option(
|
|
||||||
"--configurations", "-c",
|
|
||||||
metavar = "REGEX",
|
|
||||||
help = "Regex to filter Gradle configurations (default: include all configurations)")
|
|
||||||
|
|
||||||
val outDir: File? by option(
|
val outDir: File? by option(
|
||||||
"--out-dir", "-o",
|
"--out-dir", "-o",
|
||||||
metavar = "DIR",
|
metavar = "DIR",
|
||||||
@@ -74,11 +75,12 @@ class Gradle2Nix : CliktCommand(
|
|||||||
help = "Prefix for environment files (.json and .nix)")
|
help = "Prefix for environment files (.json and .nix)")
|
||||||
.default("gradle-env")
|
.default("gradle-env")
|
||||||
|
|
||||||
private val debug: Boolean by option("--debug", help = "Enable debug logging")
|
private val logLevel: LogLevel by option(
|
||||||
.flag(default = false)
|
"--log", "-l",
|
||||||
|
metavar = "LEVEL",
|
||||||
private val quiet: Boolean by option("--quiet", "-q", help = "Disable logging")
|
help = "Print messages with priority of at least LEVEL")
|
||||||
.flag(default = false)
|
.enum<LogLevel>()
|
||||||
|
.default(LogLevel.error)
|
||||||
|
|
||||||
private val projectDir: File by option(
|
private val projectDir: File by option(
|
||||||
"--projectDir", "-d",
|
"--projectDir", "-d",
|
||||||
@@ -99,6 +101,16 @@ class Gradle2Nix : CliktCommand(
|
|||||||
help = "Gradle tasks to run"
|
help = "Gradle tasks to run"
|
||||||
).multiple()
|
).multiple()
|
||||||
|
|
||||||
|
private val dumpEvents: Boolean by option(
|
||||||
|
"--dump-events",
|
||||||
|
help = "Dump Gradle event logs to the output directory",
|
||||||
|
).flag()
|
||||||
|
|
||||||
|
private val stacktrace: Boolean by option(
|
||||||
|
"--stacktrace",
|
||||||
|
help = "Print a stack trace on error"
|
||||||
|
).flag()
|
||||||
|
|
||||||
private val gradleArgs: List<String> by argument(
|
private val gradleArgs: List<String> by argument(
|
||||||
name = "ARGS",
|
name = "ARGS",
|
||||||
help = "Extra arguments to pass to Gradle"
|
help = "Extra arguments to pass to Gradle"
|
||||||
@@ -118,7 +130,7 @@ class Gradle2Nix : CliktCommand(
|
|||||||
}
|
}
|
||||||
val gradleHome =
|
val gradleHome =
|
||||||
System.getenv("GRADLE_USER_HOME")?.let(::File) ?: File("${System.getProperty("user.home")}/.gradle")
|
System.getenv("GRADLE_USER_HOME")?.let(::File) ?: File("${System.getProperty("user.home")}/.gradle")
|
||||||
val logger = Logger(verbose = !quiet, stacktrace = debug)
|
val logger = Logger(logLevel = logLevel, stacktrace = stacktrace)
|
||||||
|
|
||||||
val config = Config(
|
val config = Config(
|
||||||
File(appHome),
|
File(appHome),
|
||||||
@@ -126,11 +138,11 @@ class Gradle2Nix : CliktCommand(
|
|||||||
gradleVersion,
|
gradleVersion,
|
||||||
gradleJdk,
|
gradleJdk,
|
||||||
gradleArgs,
|
gradleArgs,
|
||||||
projectFilter,
|
outDir ?: projectDir,
|
||||||
configurationFilter,
|
|
||||||
projectDir,
|
projectDir,
|
||||||
tasks,
|
tasks,
|
||||||
logger
|
logger,
|
||||||
|
dumpEvents
|
||||||
)
|
)
|
||||||
|
|
||||||
val metadata = File("$projectDir/gradle/verification-metadata.xml")
|
val metadata = File("$projectDir/gradle/verification-metadata.xml")
|
||||||
@@ -146,19 +158,37 @@ class Gradle2Nix : CliktCommand(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val buildSrcs = connect(config).use { connection ->
|
||||||
|
val root = runBlocking { connection.buildModel() }
|
||||||
|
val builds: List<GradleBuild> = buildList {
|
||||||
|
add(root)
|
||||||
|
addAll(root.editableBuilds)
|
||||||
|
}
|
||||||
|
builds.mapNotNull { build ->
|
||||||
|
build.rootProject.projectDirectory.resolve("buildSrc").takeIf { it.exists() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val dependencySets = mutableListOf<DependencySet>()
|
||||||
|
|
||||||
connect(config).use { connection ->
|
connect(config).use { connection ->
|
||||||
connection.build(config)
|
dependencySets.add(runBlocking { connection.build(config) })
|
||||||
|
}
|
||||||
|
|
||||||
|
for (buildSrc in buildSrcs) {
|
||||||
|
connect(config, buildSrc).use { connection ->
|
||||||
|
dependencySets.add(runBlocking { connection.build(config) })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val env = try {
|
val env = try {
|
||||||
processDependencies(config)
|
processDependencies(config, dependencySets)
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
logger.error("dependency parsing failed", e)
|
logger.error("dependency parsing failed", e)
|
||||||
}
|
}
|
||||||
|
|
||||||
val outDir = outDir ?: projectDir
|
val json = config.outDir.resolve("$envFile.json")
|
||||||
val json = outDir.resolve("$envFile.json")
|
logger.info("Writing environment to $json")
|
||||||
logger.log("Writing environment to $json")
|
|
||||||
json.outputStream().buffered().use { output ->
|
json.outputStream().buffered().use { output ->
|
||||||
JsonFormat.encodeToStream(env, output)
|
JsonFormat.encodeToStream(env, output)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,23 +4,13 @@ import org.nixos.gradle2nix.metadata.Artifact as ArtifactMetadata
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
import java.net.URL
|
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
|
||||||
import kotlinx.serialization.SerializationException
|
|
||||||
import kotlinx.serialization.json.Json
|
|
||||||
import kotlinx.serialization.json.decodeFromStream
|
|
||||||
import okio.ByteString.Companion.decodeHex
|
import okio.ByteString.Companion.decodeHex
|
||||||
import okio.HashingSource
|
import okio.HashingSource
|
||||||
import okio.blackholeSink
|
import okio.blackholeSink
|
||||||
import okio.buffer
|
import okio.buffer
|
||||||
import okio.source
|
import okio.source
|
||||||
import org.nixos.gradle2nix.model.Repository
|
import org.nixos.gradle2nix.env.Artifact
|
||||||
import org.nixos.gradle2nix.model.ResolvedConfiguration
|
|
||||||
import org.nixos.gradle2nix.env.ArtifactFile
|
|
||||||
import org.nixos.gradle2nix.env.ArtifactSet
|
|
||||||
import org.nixos.gradle2nix.env.Env
|
import org.nixos.gradle2nix.env.Env
|
||||||
import org.nixos.gradle2nix.env.Module
|
|
||||||
import org.nixos.gradle2nix.env.ModuleId
|
|
||||||
import org.nixos.gradle2nix.metadata.Checksum
|
import org.nixos.gradle2nix.metadata.Checksum
|
||||||
import org.nixos.gradle2nix.metadata.Component
|
import org.nixos.gradle2nix.metadata.Component
|
||||||
import org.nixos.gradle2nix.metadata.Md5
|
import org.nixos.gradle2nix.metadata.Md5
|
||||||
@@ -30,239 +20,100 @@ import org.nixos.gradle2nix.metadata.Sha512
|
|||||||
import org.nixos.gradle2nix.metadata.VerificationMetadata
|
import org.nixos.gradle2nix.metadata.VerificationMetadata
|
||||||
import org.nixos.gradle2nix.metadata.parseVerificationMetadata
|
import org.nixos.gradle2nix.metadata.parseVerificationMetadata
|
||||||
import org.nixos.gradle2nix.model.DependencyCoordinates
|
import org.nixos.gradle2nix.model.DependencyCoordinates
|
||||||
import org.nixos.gradle2nix.model.Version
|
import org.nixos.gradle2nix.model.DependencySet
|
||||||
import org.nixos.gradle2nix.module.GradleModule
|
|
||||||
import org.nixos.gradle2nix.module.Variant
|
|
||||||
|
|
||||||
// Local Maven repository for testing
|
fun processDependencies(
|
||||||
private val m2 = System.getProperty("org.nixos.gradle2nix.m2")
|
config: Config,
|
||||||
|
dependencySets: Iterable<DependencySet>
|
||||||
private fun shouldSkipRepository(repository: Repository): Boolean {
|
): Env {
|
||||||
return repository.artifactResources.all { it.startsWith("file:") && (m2 == null || !it.startsWith(m2)) } ||
|
|
||||||
repository.metadataResources.all { it.startsWith("file:") && (m2 == null || !it.startsWith(m2)) }
|
|
||||||
}
|
|
||||||
|
|
||||||
fun processDependencies(config: Config): Env {
|
|
||||||
val verificationMetadata = readVerificationMetadata(config)
|
val verificationMetadata = readVerificationMetadata(config)
|
||||||
val verificationComponents = verificationMetadata?.components?.associateBy { it.id } ?: emptyMap()
|
val verificationComponents = verificationMetadata?.components?.associateBy { it.id.id } ?: emptyMap()
|
||||||
val moduleCache = mutableMapOf<DependencyCoordinates, GradleModule?>()
|
|
||||||
val pomCache = mutableMapOf<DependencyCoordinates, Pair<String, ArtifactFile>?>()
|
|
||||||
val ivyCache = mutableMapOf<DependencyCoordinates, Pair<String, ArtifactFile>?>()
|
|
||||||
val configurations = readDependencyGraph(config)
|
|
||||||
|
|
||||||
val repositories = configurations
|
return buildMap<DependencyCoordinates, Map<String, Artifact>> {
|
||||||
.flatMap { it.repositories }
|
for (dependencySet in dependencySets) {
|
||||||
.associateBy { it.id }
|
val env = dependencySet.toEnv(config, verificationComponents)
|
||||||
.filterNot { (id, repo) ->
|
|
||||||
if (shouldSkipRepository(repo)) {
|
for ((id, artifacts) in env) {
|
||||||
config.logger.warn("$id: all URLs are files; skipping")
|
merge(id, artifacts) { a, b ->
|
||||||
true
|
buildMap {
|
||||||
} else {
|
putAll(a)
|
||||||
false
|
for ((name, artifact) in b) {
|
||||||
|
merge(name, artifact) { aa, ba ->
|
||||||
|
check(aa.hash == ba.hash) {
|
||||||
|
config.logger.error("""
|
||||||
|
Conflicting hashes found for $id:$name:
|
||||||
|
1: ${aa.hash}
|
||||||
|
2: ${ba.hash}
|
||||||
|
""".trimIndent())
|
||||||
|
}
|
||||||
|
|
||||||
|
Artifact(
|
||||||
|
(aa.urls + ba.urls).distinct().sorted(),
|
||||||
|
aa.hash
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (repositories.isEmpty()) {
|
}.mapValues { (_, artifacts) ->
|
||||||
config.logger.warn("no repositories found in any configuration")
|
artifacts.toSortedMap()
|
||||||
return emptyMap()
|
}.toSortedMap(coordinatesComparator)
|
||||||
|
.mapKeys { (coordinates, _) -> coordinates.id }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun DependencySet.toEnv(config: Config, verificationComponents: Map<String, Component>): Map<DependencyCoordinates, Map<String, Artifact>> {
|
||||||
|
return dependencies.associate { dep ->
|
||||||
|
val component = verificationComponents[dep.coordinates.id]
|
||||||
|
?: verifyComponentFilesInCache(config, dep.coordinates)
|
||||||
|
?: config.logger.error("${dep.coordinates}: no dependency metadata found")
|
||||||
|
|
||||||
|
dep.coordinates to dep.artifacts.mapNotNull { resolvedArtifact ->
|
||||||
|
val artifact = component.artifacts.find { it.name == resolvedArtifact.name }
|
||||||
|
?.let { Artifact(resolvedArtifact.urls.sorted(), it.checksums.first().toSri()) }
|
||||||
|
?: downloadArtifact(resolvedArtifact.urls.sorted())
|
||||||
|
artifact?.let { resolvedArtifact.filename to it }
|
||||||
|
}.sortedBy { it.first }.toMap()
|
||||||
}
|
}
|
||||||
config.logger.debug("Repositories:\n ${repositories.values.joinToString("\n ")}")
|
|
||||||
|
|
||||||
return configurations.asSequence()
|
|
||||||
.flatMap { it.allDependencies.asSequence() }
|
|
||||||
.filterNot { it.repository == null || it.repository !in repositories }
|
|
||||||
.groupBy { ModuleId(it.id.group, it.id.module) }
|
|
||||||
.mapValues { (_, deps) ->
|
|
||||||
val byVersion = deps.groupBy { it.id }
|
|
||||||
.mapValues { (componentId, deps) ->
|
|
||||||
val dep = MergedDependency(
|
|
||||||
id = componentId,
|
|
||||||
repositories = deps.mapNotNull { repositories[it.repository] }.distinct()
|
|
||||||
)
|
|
||||||
val component = verificationComponents[componentId]
|
|
||||||
?: verifyComponentFilesInCache(config, componentId)
|
|
||||||
?: verifyComponentFilesInTestRepository(config, componentId)
|
|
||||||
?: config.logger.error("$componentId: no dependency metadata found")
|
|
||||||
|
|
||||||
val gradleModule = moduleCache.getOrPut(componentId) {
|
|
||||||
maybeDownloadGradleModule(config.logger, component, dep.repositories)?.artifact?.second
|
|
||||||
}
|
|
||||||
val pomArtifact = pomCache.getOrPut(componentId) {
|
|
||||||
maybeDownloadMavenPom(config.logger, component, dep.repositories, gradleModule)
|
|
||||||
}
|
|
||||||
val ivyArtifact = ivyCache.getOrPut(componentId) {
|
|
||||||
maybeDownloadIvyDescriptor(config.logger, component, dep.repositories)
|
|
||||||
}
|
|
||||||
|
|
||||||
val files = buildMap {
|
|
||||||
if (pomArtifact != null) put(pomArtifact.first, pomArtifact.second)
|
|
||||||
if (ivyArtifact != null) put(ivyArtifact.first, ivyArtifact.second)
|
|
||||||
for (artifact in component.artifacts) {
|
|
||||||
put(
|
|
||||||
artifact.name,
|
|
||||||
ArtifactFile(
|
|
||||||
urls = dep.repositories.flatMap { repo ->
|
|
||||||
artifactUrls(config.logger, componentId, artifact.name, repo, gradleModule)
|
|
||||||
}.distinct(),
|
|
||||||
hash = artifact.checksums.first().toSri()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}.toSortedMap()
|
|
||||||
|
|
||||||
ArtifactSet(files)
|
|
||||||
}
|
|
||||||
.mapKeys { Version(it.key.version) }
|
|
||||||
.toSortedMap(Version.Comparator.reversed())
|
|
||||||
Module(byVersion)
|
|
||||||
}
|
|
||||||
.toSortedMap(compareBy(ModuleId::toString))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun readVerificationMetadata(config: Config): VerificationMetadata? {
|
private fun readVerificationMetadata(config: Config): VerificationMetadata? {
|
||||||
return parseVerificationMetadata(config.logger, config.projectDir.resolve("gradle/verification-metadata.xml"))
|
return parseVerificationMetadata(config.logger, config.projectDir.resolve("gradle/verification-metadata.xml"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalSerializationApi::class)
|
|
||||||
private fun readDependencyGraph(config: Config): List<ResolvedConfiguration> {
|
|
||||||
return config.projectDir.resolve("build/reports/nix-dependency-graph/dependency-graph.json")
|
|
||||||
.inputStream()
|
|
||||||
.buffered()
|
|
||||||
.use { input -> Json.decodeFromStream(input) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun verifyComponentFilesInCache(
|
private fun verifyComponentFilesInCache(
|
||||||
config: Config,
|
config: Config,
|
||||||
id: DependencyCoordinates,
|
id: DependencyCoordinates,
|
||||||
): Component? {
|
): Component? {
|
||||||
val cacheDir = with(id) { config.gradleHome.resolve("caches/modules-2/files-2.1/$group/$module/$version") }
|
val cacheDir = with(id) { config.gradleHome.resolve("caches/modules-2/files-2.1/$group/$artifact/$version") }
|
||||||
if (!cacheDir.exists()) {
|
if (!cacheDir.exists()) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
val verifications = cacheDir.walk().filter { it.isFile }.map { f ->
|
val verifications = cacheDir.walk().filter { it.isFile }.map { f ->
|
||||||
ArtifactMetadata(f.name, sha256 = Sha256(f.sha256()))
|
ArtifactMetadata(f.name.replaceFirst(id.version, id.timestampedVersion), sha256 = Sha256(f.sha256()))
|
||||||
}
|
}
|
||||||
config.logger.log("$id: obtained artifact hashes from Gradle cache.")
|
config.logger.info("${id.id}: obtained artifact hashes from Gradle cache.")
|
||||||
return Component(id, verifications.toList())
|
return Component(id, verifications.toList())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun verifyComponentFilesInTestRepository(
|
private fun downloadArtifact(
|
||||||
config: Config,
|
urls: List<String>
|
||||||
id: DependencyCoordinates
|
): Artifact? {
|
||||||
): Component? {
|
return maybeDownloadText(urls)?.let {
|
||||||
if (m2 == null) return null
|
Artifact(
|
||||||
val dir = with(id) {
|
urls,
|
||||||
File(URI.create(m2)).resolve("${group.replace(".", "/")}/$module/$version")
|
it.hash.toSri()
|
||||||
}
|
|
||||||
if (!dir.exists()) {
|
|
||||||
config.logger.log("$id: not found in m2 repository; tried $dir")
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
val verifications = dir.walk().filter { it.isFile && it.name.startsWith(id.module) }.map { f ->
|
|
||||||
ArtifactMetadata(
|
|
||||||
f.name,
|
|
||||||
sha256 = Sha256(f.sha256())
|
|
||||||
)
|
|
||||||
}
|
|
||||||
config.logger.log("$id: obtained artifact hashes from test Maven repository.")
|
|
||||||
return Component(id, verifications.toList())
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun maybeDownloadGradleModule(
|
|
||||||
logger: Logger,
|
|
||||||
component: Component,
|
|
||||||
repos: List<Repository>
|
|
||||||
): ArtifactDownload<Pair<String, GradleModule>>? {
|
|
||||||
if (component.artifacts.none { it.name.endsWith(".module") }) return null
|
|
||||||
val filename = with(component.id) { "$module-$version.module" }
|
|
||||||
return maybeDownloadArtifact(logger, component.id, filename, repos)?.let { artifact ->
|
|
||||||
try {
|
|
||||||
ArtifactDownload(
|
|
||||||
filename to JsonFormat.decodeFromString<GradleModule>(artifact.artifact),
|
|
||||||
artifact.url,
|
|
||||||
artifact.hash
|
|
||||||
)
|
|
||||||
} catch (e: SerializationException) {
|
|
||||||
logger.warn("${component.id}: failed to parse Gradle module metadata from ${artifact.url}")
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun maybeDownloadMavenPom(
|
|
||||||
logger: Logger,
|
|
||||||
component: Component,
|
|
||||||
repos: List<Repository>,
|
|
||||||
gradleModule: GradleModule?
|
|
||||||
): Pair<String, ArtifactFile>? {
|
|
||||||
if (component.artifacts.any { it.name.endsWith(".pom") }) return null
|
|
||||||
val pomRepos = repos.filter { "mavenPom" in it.metadataSources }
|
|
||||||
if (pomRepos.isEmpty()) return null
|
|
||||||
val filename = with(component.id) { "$module-$version.pom" }
|
|
||||||
|
|
||||||
return maybeDownloadArtifact(logger, component.id, filename, pomRepos)?.let { artifact ->
|
|
||||||
filename to ArtifactFile(
|
|
||||||
urls = pomRepos.flatMap { repo ->
|
|
||||||
artifactUrls(logger, component.id, filename, repo, gradleModule)
|
|
||||||
}.distinct(),
|
|
||||||
hash = artifact.hash.toSri()
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun maybeDownloadIvyDescriptor(
|
private fun maybeDownloadText(
|
||||||
logger: Logger,
|
urls: List<String>,
|
||||||
component: Component,
|
|
||||||
repos: List<Repository>,
|
|
||||||
): Pair<String, ArtifactFile>? {
|
|
||||||
val ivyRepos = repos.filter { "ivyDescriptor" in it.metadataSources }
|
|
||||||
if (ivyRepos.isEmpty()) return null
|
|
||||||
|
|
||||||
val urls = ivyRepos
|
|
||||||
.flatMap { repo ->
|
|
||||||
val attributes = attributes(component.id, repo)
|
|
||||||
repo.metadataResources.mapNotNull { fill(it, attributes).takeIf(::isUrlComplete) }
|
|
||||||
}
|
|
||||||
.filter { url ->
|
|
||||||
component.artifacts.none { url.substringAfterLast('/') == it.name }
|
|
||||||
}
|
|
||||||
|
|
||||||
var artifact: ArtifactDownload<String>? = null
|
|
||||||
|
|
||||||
for (url in urls) {
|
|
||||||
try {
|
|
||||||
val source = HashingSource.sha256(URL(url).openStream().source())
|
|
||||||
val text = source.buffer().readUtf8()
|
|
||||||
val hash = source.hash
|
|
||||||
artifact = ArtifactDownload(text, url, Sha256(hash.hex()))
|
|
||||||
break
|
|
||||||
} catch (e: IOException) {
|
|
||||||
// Pass
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (artifact == null) {
|
|
||||||
logger.debug("ivy descriptor not found in urls: $urls")
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
return artifact.artifact to ArtifactFile(
|
|
||||||
urls = urls,
|
|
||||||
hash = artifact.hash.toSri()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun maybeDownloadArtifact(
|
|
||||||
logger: Logger,
|
|
||||||
id: DependencyCoordinates,
|
|
||||||
filename: String,
|
|
||||||
repos: List<Repository>
|
|
||||||
): ArtifactDownload<String>? {
|
): ArtifactDownload<String>? {
|
||||||
val urls = repos.flatMap { artifactUrls(logger, id, filename, it, null)}
|
|
||||||
|
|
||||||
logger.debug("artifact $filename: $urls")
|
|
||||||
|
|
||||||
for (url in urls) {
|
for (url in urls) {
|
||||||
try {
|
try {
|
||||||
val source = HashingSource.sha256(URL(url).openStream().source())
|
val source = HashingSource.sha256(URI(url).toURL().openStream().source())
|
||||||
val text = source.buffer().readUtf8()
|
val text = source.buffer().readUtf8()
|
||||||
val hash = source.hash
|
val hash = source.hash
|
||||||
return ArtifactDownload(text, url, Sha256(hash.hex()))
|
return ArtifactDownload(text, url, Sha256(hash.hex()))
|
||||||
@@ -270,8 +121,6 @@ private fun maybeDownloadArtifact(
|
|||||||
// Pass
|
// Pass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("artifact $filename not found in any repository")
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,7 +130,7 @@ private fun File.sha256(): String {
|
|||||||
return source.hash.hex()
|
return source.hash.hex()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Checksum.toSri(): String {
|
internal fun Checksum.toSri(): String {
|
||||||
val hash = value.decodeHex().base64()
|
val hash = value.decodeHex().base64()
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is Md5 -> "md5-$hash"
|
is Md5 -> "md5-$hash"
|
||||||
@@ -291,96 +140,13 @@ private fun Checksum.toSri(): String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun artifactUrls(
|
|
||||||
logger: Logger,
|
|
||||||
id: DependencyCoordinates,
|
|
||||||
filename: String,
|
|
||||||
repository: Repository,
|
|
||||||
module: GradleModule?,
|
|
||||||
): List<String> {
|
|
||||||
val groupAsPath = id.group.replace(".", "/")
|
|
||||||
|
|
||||||
val repoFilename = module?.let { m ->
|
|
||||||
m.variants
|
|
||||||
.asSequence()
|
|
||||||
.flatMap(Variant::files)
|
|
||||||
.find { it.name == filename }
|
|
||||||
}?.url ?: filename
|
|
||||||
|
|
||||||
val attributes = mutableMapOf(
|
|
||||||
"organisation" to if (repository.m2Compatible) groupAsPath else id.group,
|
|
||||||
"module" to id.module,
|
|
||||||
"revision" to id.version,
|
|
||||||
) + fileAttributes(repoFilename, id.version)
|
|
||||||
|
|
||||||
val resources = when (attributes["ext"]) {
|
|
||||||
"pom" -> if ("mavenPom" in repository.metadataSources) repository.metadataResources else repository.artifactResources
|
|
||||||
"xml" -> if ("ivyDescriptor" in repository.metadataSources) repository.metadataResources else repository.artifactResources
|
|
||||||
"module" -> if ("gradleMetadata" in repository.metadataSources || "ignoreGradleMetadataRedirection" !in repository.metadataSources) {
|
|
||||||
repository.metadataResources
|
|
||||||
} else {
|
|
||||||
repository.artifactResources
|
|
||||||
}
|
|
||||||
else -> repository.artifactResources
|
|
||||||
}.map { it.replaceFirst("-[revision]", "-${id.artifactVersion}") }
|
|
||||||
|
|
||||||
val urls = mutableListOf<String>()
|
|
||||||
|
|
||||||
for (resource in resources) {
|
|
||||||
val location = attributes.entries.fold(fill(resource, attributes)) { acc, (key, value) ->
|
|
||||||
acc.replace("[$key]", value)
|
|
||||||
}
|
|
||||||
if (location.none { it == '[' || it == ']' }) {
|
|
||||||
urls.add(location)
|
|
||||||
} else {
|
|
||||||
logger.warn("failed to construct artifact URL: $location")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return urls.distinct()
|
|
||||||
}
|
|
||||||
|
|
||||||
private val optionalRegex = Regex("\\(([^)]+)\\)")
|
|
||||||
private val attrRegex = Regex("\\[([^]]+)]")
|
|
||||||
|
|
||||||
private fun fill(template: String, attributes: Map<String, String>): String {
|
|
||||||
return optionalRegex.replace(template) { match ->
|
|
||||||
attrRegex.find(match.value)?.groupValues?.get(1)?.let { attr ->
|
|
||||||
attributes[attr]?.takeIf { it.isNotBlank() }?.let { value ->
|
|
||||||
match.groupValues[1].replace("[$attr]", value)
|
|
||||||
}
|
|
||||||
} ?: ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun isUrlComplete(url: String): Boolean = !url.contains("[")
|
|
||||||
|
|
||||||
private fun attributes(id: DependencyCoordinates, repository: Repository): Map<String, String> = buildMap {
|
|
||||||
put("organisation", if (repository.m2Compatible) id.group.replace(".", "/") else id.group)
|
|
||||||
put("module", id.module)
|
|
||||||
put("revision", id.version)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gradle persists artifacts with the Maven artifact pattern, which may not match the repository's pattern.
|
|
||||||
private fun fileAttributes(file: String, version: String): Map<String, String> {
|
|
||||||
val parts = Regex("(.+)-$version(-([^.]+))?(\\.(.+))?").matchEntire(file) ?: return emptyMap()
|
|
||||||
|
|
||||||
val (artifact, _, classifier, _, ext) = parts.destructured
|
|
||||||
|
|
||||||
return buildMap {
|
|
||||||
put("artifact", artifact)
|
|
||||||
put("classifier", classifier)
|
|
||||||
put("ext", ext)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private data class MergedDependency(
|
|
||||||
val id: DependencyCoordinates,
|
|
||||||
val repositories: List<Repository>
|
|
||||||
)
|
|
||||||
|
|
||||||
private data class ArtifactDownload<T>(
|
private data class ArtifactDownload<T>(
|
||||||
val artifact: T,
|
val artifact: T,
|
||||||
val url: String,
|
val url: String,
|
||||||
val hash: Checksum
|
val hash: Checksum
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private val coordinatesComparator: Comparator<DependencyCoordinates> = compareBy<DependencyCoordinates> { it.group }
|
||||||
|
.thenBy { it.artifact }
|
||||||
|
.thenByDescending { Version(it.version) }
|
||||||
|
.thenByDescending { it.timestamp }
|
||||||
|
|||||||
@@ -1,16 +1,7 @@
|
|||||||
package org.nixos.gradle2nix.model
|
package org.nixos.gradle2nix
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap
|
import java.util.concurrent.ConcurrentHashMap
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.Serializable
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
|
|
||||||
|
|
||||||
@Serializable(Version.Serializer::class)
|
|
||||||
class Version(val source: String, val parts: List<String>, base: Version?) : Comparable<Version> {
|
class Version(val source: String, val parts: List<String>, base: Version?) : Comparable<Version> {
|
||||||
|
|
||||||
private val base: Version
|
private val base: Version
|
||||||
@@ -35,26 +26,6 @@ class Version(val source: String, val parts: List<String>, base: Version?) : Com
|
|||||||
|
|
||||||
override fun hashCode(): Int = source.hashCode()
|
override fun hashCode(): Int = source.hashCode()
|
||||||
|
|
||||||
object Comparator : kotlin.Comparator<Version> {
|
|
||||||
override fun compare(o1: Version, o2: Version): Int =
|
|
||||||
Version.compare(o1, o2)
|
|
||||||
}
|
|
||||||
|
|
||||||
internal object Serializer : KSerializer<Version> {
|
|
||||||
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor(
|
|
||||||
Version::class.qualifiedName!!,
|
|
||||||
PrimitiveKind.STRING
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun serialize(encoder: Encoder, value: Version) {
|
|
||||||
encoder.encodeString(value.source)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun deserialize(decoder: Decoder): Version {
|
|
||||||
return Version(decoder.decodeString())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val SPECIAL_MEANINGS: Map<String, Int> = mapOf(
|
private val SPECIAL_MEANINGS: Map<String, Int> = mapOf(
|
||||||
"dev" to -1,
|
"dev" to -1,
|
||||||
@@ -1,68 +1,22 @@
|
|||||||
package org.nixos.gradle2nix.env
|
package org.nixos.gradle2nix.env
|
||||||
|
|
||||||
import kotlinx.serialization.KSerializer
|
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
import kotlinx.serialization.SerializationException
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
|
||||||
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
|
|
||||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
|
||||||
import kotlinx.serialization.encoding.Decoder
|
|
||||||
import kotlinx.serialization.encoding.Encoder
|
|
||||||
import org.nixos.gradle2nix.model.Version
|
|
||||||
|
|
||||||
typealias Env = Map<ModuleId, Module>
|
typealias Env = Map<String, Map<String, Artifact>>
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@JvmInline
|
data class Artifact internal constructor(
|
||||||
value class Module(
|
|
||||||
val versions: Map<Version, ArtifactSet>,
|
|
||||||
)
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
@JvmInline
|
|
||||||
value class ArtifactSet(
|
|
||||||
val files: Map<String, ArtifactFile>
|
|
||||||
)
|
|
||||||
|
|
||||||
@Serializable
|
|
||||||
data class ArtifactFile internal constructor(
|
|
||||||
val urls: List<String>,
|
val urls: List<String>,
|
||||||
val hash: String,
|
val hash: String,
|
||||||
) {
|
) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
operator fun invoke(urls: List<String>, hash: String) = ArtifactFile(urls.sorted(), hash)
|
operator fun invoke(
|
||||||
}
|
urls: List<String>,
|
||||||
}
|
hash: String
|
||||||
|
) = Artifact(
|
||||||
@Serializable(ModuleId.Serializer::class)
|
urls.sorted(),
|
||||||
data class ModuleId(
|
hash
|
||||||
val group: String,
|
|
||||||
val name: String,
|
|
||||||
) : Comparable<ModuleId> {
|
|
||||||
|
|
||||||
override fun compareTo(other: ModuleId): Int =
|
|
||||||
compareValuesBy(this, other, ModuleId::group, ModuleId::name)
|
|
||||||
|
|
||||||
override fun toString(): String = "$group:$name"
|
|
||||||
|
|
||||||
companion object Serializer : KSerializer<ModuleId> {
|
|
||||||
override val descriptor: SerialDescriptor get() = PrimitiveSerialDescriptor(
|
|
||||||
ModuleId::class.qualifiedName!!,
|
|
||||||
PrimitiveKind.STRING
|
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun serialize(encoder: Encoder, value: ModuleId) {
|
|
||||||
encoder.encodeString(value.toString())
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun deserialize(decoder: Decoder): ModuleId {
|
|
||||||
val encoded = decoder.decodeString()
|
|
||||||
val parts = encoded.split(":")
|
|
||||||
if (parts.size != 2 || parts.any(String::isBlank)) {
|
|
||||||
throw SerializationException("invalid module id: $encoded")
|
|
||||||
}
|
|
||||||
return ModuleId(parts[0], parts[1])
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.nixos.gradle2nix.module
|
package org.nixos.gradle2nix.gradle
|
||||||
|
|
||||||
import kotlinx.serialization.SerialName
|
import kotlinx.serialization.SerialName
|
||||||
import kotlinx.serialization.Serializable
|
import kotlinx.serialization.Serializable
|
||||||
@@ -10,6 +10,7 @@ import nl.adaptivity.xmlutil.serialization.XmlSerialName
|
|||||||
import nl.adaptivity.xmlutil.xmlStreaming
|
import nl.adaptivity.xmlutil.xmlStreaming
|
||||||
import org.nixos.gradle2nix.Logger
|
import org.nixos.gradle2nix.Logger
|
||||||
import org.nixos.gradle2nix.model.DependencyCoordinates
|
import org.nixos.gradle2nix.model.DependencyCoordinates
|
||||||
|
import org.nixos.gradle2nix.model.impl.DefaultDependencyCoordinates
|
||||||
|
|
||||||
sealed interface Coordinates {
|
sealed interface Coordinates {
|
||||||
val group: String?
|
val group: String?
|
||||||
@@ -40,10 +41,10 @@ data class Configuration(
|
|||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
sealed interface Checksum {
|
sealed interface Checksum {
|
||||||
abstract val value: String
|
val value: String
|
||||||
abstract val origin: String?
|
val origin: String?
|
||||||
abstract val reason: String?
|
val reason: String?
|
||||||
abstract val alternatives: List<String>
|
val alternatives: List<String>
|
||||||
}
|
}
|
||||||
|
|
||||||
@Serializable
|
@Serializable
|
||||||
@@ -107,11 +108,11 @@ data class Component(
|
|||||||
val timestamp: String? = null,
|
val timestamp: String? = null,
|
||||||
val artifacts: List<Artifact> = emptyList(),
|
val artifacts: List<Artifact> = emptyList(),
|
||||||
) {
|
) {
|
||||||
val id: DependencyCoordinates get() = DependencyCoordinates(group, name, version, timestamp)
|
val id: DependencyCoordinates get() = DefaultDependencyCoordinates(group, name, version, timestamp)
|
||||||
|
|
||||||
constructor(id: DependencyCoordinates, artifacts: List<Artifact>) : this(
|
constructor(id: DependencyCoordinates, artifacts: List<Artifact>) : this(
|
||||||
id.group,
|
id.group,
|
||||||
id.module,
|
id.artifact,
|
||||||
id.version,
|
id.version,
|
||||||
id.timestamp,
|
id.timestamp,
|
||||||
artifacts
|
artifacts
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package org.nixos.gradle2nix
|
package org.nixos.gradle2nix
|
||||||
|
|
||||||
|
import io.kotest.core.extensions.install
|
||||||
import io.kotest.core.spec.style.FunSpec
|
import io.kotest.core.spec.style.FunSpec
|
||||||
|
|
||||||
class GoldenTest : FunSpec({
|
class GoldenTest : FunSpec({
|
||||||
|
install(MavenRepo)
|
||||||
|
|
||||||
context("basic") {
|
context("basic") {
|
||||||
golden("basic/basic-java-project")
|
golden("basic/basic-java-project")
|
||||||
golden("basic/basic-kotlin-project")
|
golden("basic/basic-kotlin-project")
|
||||||
|
|||||||
@@ -1,20 +1,37 @@
|
|||||||
package org.nixos.gradle2nix
|
package org.nixos.gradle2nix
|
||||||
|
|
||||||
import io.kotest.assertions.fail
|
import io.kotest.assertions.fail
|
||||||
|
import io.kotest.assertions.withClue
|
||||||
import io.kotest.common.ExperimentalKotest
|
import io.kotest.common.ExperimentalKotest
|
||||||
import io.kotest.common.KotestInternal
|
import io.kotest.common.KotestInternal
|
||||||
|
import io.kotest.core.extensions.MountableExtension
|
||||||
|
import io.kotest.core.listeners.AfterSpecListener
|
||||||
import io.kotest.core.names.TestName
|
import io.kotest.core.names.TestName
|
||||||
import io.kotest.core.source.sourceRef
|
import io.kotest.core.source.sourceRef
|
||||||
|
import io.kotest.core.spec.Spec
|
||||||
import io.kotest.core.test.NestedTest
|
import io.kotest.core.test.NestedTest
|
||||||
import io.kotest.core.test.TestScope
|
import io.kotest.core.test.TestScope
|
||||||
import io.kotest.core.test.TestType
|
import io.kotest.core.test.TestType
|
||||||
import io.kotest.matchers.equals.beEqual
|
import io.kotest.matchers.equals.beEqual
|
||||||
import io.kotest.matchers.file.shouldBeAFile
|
import io.kotest.matchers.file.shouldBeAFile
|
||||||
|
import io.kotest.matchers.nulls.shouldNotBeNull
|
||||||
import io.kotest.matchers.should
|
import io.kotest.matchers.should
|
||||||
|
import io.kotest.matchers.shouldBe
|
||||||
|
import io.ktor.http.ContentType
|
||||||
|
import io.ktor.http.Url
|
||||||
|
import io.ktor.server.engine.embeddedServer
|
||||||
|
import io.ktor.server.http.content.staticFiles
|
||||||
|
import io.ktor.server.netty.Netty
|
||||||
|
import io.ktor.server.netty.NettyApplicationEngine
|
||||||
|
import io.ktor.server.routing.routing
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileFilter
|
import java.io.FileFilter
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
|
import kotlin.random.Random
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.serialization.ExperimentalSerializationApi
|
import kotlinx.serialization.ExperimentalSerializationApi
|
||||||
import kotlinx.serialization.SerializationException
|
import kotlinx.serialization.SerializationException
|
||||||
import kotlinx.serialization.encodeToString
|
import kotlinx.serialization.encodeToString
|
||||||
@@ -23,6 +40,7 @@ import kotlinx.serialization.json.decodeFromStream
|
|||||||
import kotlinx.serialization.json.encodeToStream
|
import kotlinx.serialization.json.encodeToStream
|
||||||
import okio.use
|
import okio.use
|
||||||
import org.nixos.gradle2nix.env.Env
|
import org.nixos.gradle2nix.env.Env
|
||||||
|
import org.nixos.gradle2nix.metadata.parseVerificationMetadata
|
||||||
|
|
||||||
private val app = Gradle2Nix()
|
private val app = Gradle2Nix()
|
||||||
|
|
||||||
@@ -32,7 +50,7 @@ private val json = Json {
|
|||||||
prettyPrintIndent = " "
|
prettyPrintIndent = " "
|
||||||
}
|
}
|
||||||
|
|
||||||
val testLogger = Logger(verbose = true, stacktrace = true)
|
val testLogger = Logger(logLevel = LogLevel.debug, stacktrace = true)
|
||||||
|
|
||||||
fun fixture(path: String): File {
|
fun fixture(path: String): File {
|
||||||
return Paths.get("../fixtures", path).toFile()
|
return Paths.get("../fixtures", path).toFile()
|
||||||
@@ -42,10 +60,10 @@ fun fixture(path: String): File {
|
|||||||
suspend fun TestScope.fixture(
|
suspend fun TestScope.fixture(
|
||||||
project: String,
|
project: String,
|
||||||
vararg args: String,
|
vararg args: String,
|
||||||
test: suspend TestScope.(Env) -> Unit
|
test: suspend TestScope.(File, Env) -> Unit
|
||||||
) {
|
) {
|
||||||
val tmp = Paths.get("build/tmp/gradle2nix").apply { toFile().mkdirs() }
|
val tmp = Paths.get("build/tmp/gradle2nix").apply { toFile().mkdirs() }
|
||||||
val baseDir = Paths.get("../fixtures", project).toFile()
|
val baseDir = Paths.get("../fixtures/projects", project).toFile()
|
||||||
val children = baseDir.listFiles(FileFilter { it.isDirectory && (it.name == "groovy" || it.name == "kotlin") })
|
val children = baseDir.listFiles(FileFilter { it.isDirectory && (it.name == "groovy" || it.name == "kotlin") })
|
||||||
?.toList()
|
?.toList()
|
||||||
val cases = if (children.isNullOrEmpty()) {
|
val cases = if (children.isNullOrEmpty()) {
|
||||||
@@ -73,13 +91,22 @@ suspend fun TestScope.fixture(
|
|||||||
if (!tempDir.resolve("settings.gradle").exists() && !tempDir.resolve("settings.gradle.kts").exists()) {
|
if (!tempDir.resolve("settings.gradle").exists() && !tempDir.resolve("settings.gradle.kts").exists()) {
|
||||||
Files.createFile(tempDir.resolve("settings.gradle").toPath())
|
Files.createFile(tempDir.resolve("settings.gradle").toPath())
|
||||||
}
|
}
|
||||||
app.main(listOf("-d", tempDir.toString()) + listOf("--debug") + args.withM2() + "-Dorg.gradle.internal.operations.trace=${tempDir.resolve("build").absolutePath}")
|
app.main(
|
||||||
|
listOf(
|
||||||
|
"-d", tempDir.toString(),
|
||||||
|
"--log", "debug",
|
||||||
|
"--stacktrace",
|
||||||
|
"--dump-events",
|
||||||
|
"--",
|
||||||
|
"-Dorg.nixos.gradle2nix.m2=$m2"
|
||||||
|
) + args
|
||||||
|
)
|
||||||
val file = tempDir.resolve("${app.envFile}.json")
|
val file = tempDir.resolve("${app.envFile}.json")
|
||||||
file.shouldBeAFile()
|
file.shouldBeAFile()
|
||||||
val env: Env = file.inputStream().buffered().use { input ->
|
val env: Env = file.inputStream().buffered().use { input ->
|
||||||
Json.decodeFromStream(input)
|
Json.decodeFromStream(input)
|
||||||
}
|
}
|
||||||
test(env)
|
test(tempDir, env)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -92,7 +119,7 @@ suspend fun TestScope.golden(
|
|||||||
project: String,
|
project: String,
|
||||||
vararg args: String,
|
vararg args: String,
|
||||||
) {
|
) {
|
||||||
fixture(project, *args) { env ->
|
fixture(project, *args) { dir, env ->
|
||||||
val filename = "${testCase.name.testName}.json"
|
val filename = "${testCase.name.testName}.json"
|
||||||
val goldenFile = File("../fixtures/golden/$filename")
|
val goldenFile = File("../fixtures/golden/$filename")
|
||||||
if (updateGolden) {
|
if (updateGolden) {
|
||||||
@@ -111,14 +138,83 @@ suspend fun TestScope.golden(
|
|||||||
}
|
}
|
||||||
json.encodeToString(env) should beEqual(goldenData)
|
json.encodeToString(env) should beEqual(goldenData)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val metadata = parseVerificationMetadata(
|
||||||
|
testLogger,
|
||||||
|
dir.resolve("gradle/verification-metadata.xml")
|
||||||
|
)!!
|
||||||
|
|
||||||
|
for (component in metadata.components) {
|
||||||
|
val componentId = component.id.id
|
||||||
|
|
||||||
|
withClue("env should contain component $componentId") {
|
||||||
|
env[componentId].shouldNotBeNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val m2 = System.getProperty("org.nixos.gradle2nix.m2")
|
val m2: String = requireNotNull(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
|
||||||
private fun Array<out String>.withM2(): List<String> {
|
object MavenRepo : MountableExtension<MavenRepo.Config, NettyApplicationEngine>, AfterSpecListener {
|
||||||
val args = toMutableList()
|
class Config {
|
||||||
if (args.indexOf("--") < 0) args.add("--")
|
var repository: File = File("../fixtures/repositories/m2")
|
||||||
args.add("-Dorg.nixos.gradle2nix.m2=$m2")
|
var path: String = ""
|
||||||
return args
|
var port: Int? = null
|
||||||
|
var host: String = DEFAULT_HOST
|
||||||
|
}
|
||||||
|
|
||||||
|
const val DEFAULT_HOST = "0.0.0.0"
|
||||||
|
|
||||||
|
private val coroutineScope = CoroutineScope(Dispatchers.Default)
|
||||||
|
private var server: NettyApplicationEngine? = null
|
||||||
|
private val config = Config()
|
||||||
|
|
||||||
|
init {
|
||||||
|
require(config.repository.exists()) {
|
||||||
|
"test repository doesn't exist: ${config.repository}"
|
||||||
|
}
|
||||||
|
val m2Url = Url(m2)
|
||||||
|
config.path = m2Url.encodedPath
|
||||||
|
config.host = m2Url.host
|
||||||
|
config.port = m2Url.port
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun mount(configure: Config.() -> Unit): NettyApplicationEngine {
|
||||||
|
config.configure()
|
||||||
|
// try 3 times to find a port if random
|
||||||
|
return tryStart(3).also { this.server = it }
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun tryStart(attempts: Int): NettyApplicationEngine {
|
||||||
|
return try {
|
||||||
|
val p = config.port ?: Random.nextInt(10000, 65000)
|
||||||
|
val s = embeddedServer(Netty, port = p, host = config.host) {
|
||||||
|
routing {
|
||||||
|
staticFiles(
|
||||||
|
remotePath = config.path,
|
||||||
|
dir = config.repository,
|
||||||
|
index = null,
|
||||||
|
) {
|
||||||
|
enableAutoHeadResponse()
|
||||||
|
contentType { path ->
|
||||||
|
when (path.extension) {
|
||||||
|
"pom", "xml" -> ContentType.Text.Xml
|
||||||
|
"jar" -> ContentType("application", "java-archive")
|
||||||
|
else -> ContentType.Text.Plain
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
coroutineScope.launch { s.start(wait = true) }
|
||||||
|
s
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
if (config.port == null && attempts > 0) tryStart(attempts - 1) else throw e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun afterSpec(spec: Spec) {
|
||||||
|
server?.stop()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
plugins {
|
|
||||||
java
|
|
||||||
}
|
|
||||||
|
|
||||||
repositories {
|
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
implementation(platform("io.micrometer:micrometer-bom:1.5.1"))
|
|
||||||
implementation("io.micrometer:micrometer-core")
|
|
||||||
}
|
|
||||||
@@ -1,82 +1,88 @@
|
|||||||
{
|
{
|
||||||
"com.squareup.moshi:moshi": {
|
"com.squareup.moshi:moshi:1.8.0": {
|
||||||
"1.8.0": {
|
"moshi-1.8.0.jar": {
|
||||||
"moshi-1.8.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
||||||
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
},
|
||||||
},
|
"moshi-1.8.0.pom": {
|
||||||
"moshi-1.8.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
||||||
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.squareup.okio:okio": {
|
"com.squareup.moshi:moshi-parent:1.8.0": {
|
||||||
"2.2.2": {
|
"moshi-parent-1.8.0.pom": {
|
||||||
"okio-2.2.2.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
],
|
||||||
],
|
"hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c="
|
||||||
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
|
||||||
},
|
|
||||||
"okio-2.2.2.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib": {
|
"com.squareup.okio:okio:2.2.2": {
|
||||||
"1.2.60": {
|
"okio-2.2.2.jar": {
|
||||||
"kotlin-stdlib-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
||||||
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
},
|
||||||
},
|
"okio-2.2.2.pom": {
|
||||||
"kotlin-stdlib-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
||||||
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib-common": {
|
"org.jetbrains:annotations:13.0": {
|
||||||
"1.2.60": {
|
"annotations-13.0.jar": {
|
||||||
"kotlin-stdlib-common-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
||||||
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
},
|
||||||
},
|
"annotations-13.0.pom": {
|
||||||
"kotlin-stdlib-common-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||||
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains:annotations": {
|
"org.jetbrains.kotlin:kotlin-stdlib:1.2.60": {
|
||||||
"13.0": {
|
"kotlin-stdlib-1.2.60.jar": {
|
||||||
"annotations-13.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
||||||
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
},
|
||||||
},
|
"kotlin-stdlib-1.2.60.pom": {
|
||||||
"annotations-13.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
||||||
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
}
|
||||||
}
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": {
|
||||||
|
"kotlin-stdlib-common-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-common-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,82 +1,88 @@
|
|||||||
{
|
{
|
||||||
"com.squareup.moshi:moshi": {
|
"com.squareup.moshi:moshi:1.8.0": {
|
||||||
"1.8.0": {
|
"moshi-1.8.0.jar": {
|
||||||
"moshi-1.8.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
||||||
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
},
|
||||||
},
|
"moshi-1.8.0.pom": {
|
||||||
"moshi-1.8.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
||||||
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.squareup.okio:okio": {
|
"com.squareup.moshi:moshi-parent:1.8.0": {
|
||||||
"2.2.2": {
|
"moshi-parent-1.8.0.pom": {
|
||||||
"okio-2.2.2.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
],
|
||||||
],
|
"hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c="
|
||||||
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
|
||||||
},
|
|
||||||
"okio-2.2.2.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib": {
|
"com.squareup.okio:okio:2.2.2": {
|
||||||
"1.2.60": {
|
"okio-2.2.2.jar": {
|
||||||
"kotlin-stdlib-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
||||||
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
},
|
||||||
},
|
"okio-2.2.2.pom": {
|
||||||
"kotlin-stdlib-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
||||||
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib-common": {
|
"org.jetbrains:annotations:13.0": {
|
||||||
"1.2.60": {
|
"annotations-13.0.jar": {
|
||||||
"kotlin-stdlib-common-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
||||||
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
},
|
||||||
},
|
"annotations-13.0.pom": {
|
||||||
"kotlin-stdlib-common-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||||
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains:annotations": {
|
"org.jetbrains.kotlin:kotlin-stdlib:1.2.60": {
|
||||||
"13.0": {
|
"kotlin-stdlib-1.2.60.jar": {
|
||||||
"annotations-13.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
||||||
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
},
|
||||||
},
|
"kotlin-stdlib-1.2.60.pom": {
|
||||||
"annotations-13.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
||||||
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
}
|
||||||
}
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": {
|
||||||
|
"kotlin-stdlib-common-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-common-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,32 @@
|
|||||||
{
|
{
|
||||||
"com.badlogicgames.gdx:gdx-platform": {
|
"com.badlogicgames.gdx:gdx-parent:1.9.9": {
|
||||||
"1.9.9": {
|
"gdx-parent-1.9.9.pom": {
|
||||||
"gdx-platform-1.9.9-natives-desktop.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-parent/1.9.9/gdx-parent-1.9.9.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar"
|
],
|
||||||
],
|
"hash": "sha256-JSpktycxGU+lvD37inPSXOa3NXxQLQ+y9W5rTiqaeJM="
|
||||||
"hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8="
|
}
|
||||||
},
|
},
|
||||||
"gdx-platform-1.9.9.pom": {
|
"com.badlogicgames.gdx:gdx-platform:1.9.9": {
|
||||||
"urls": [
|
"gdx-platform-1.9.9-natives-desktop.jar": {
|
||||||
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom"
|
"urls": [
|
||||||
],
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar"
|
||||||
"hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY="
|
],
|
||||||
}
|
"hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8="
|
||||||
|
},
|
||||||
|
"gdx-platform-1.9.9.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:5": {
|
||||||
|
"oss-parent-5.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,32 @@
|
|||||||
{
|
{
|
||||||
"com.badlogicgames.gdx:gdx-platform": {
|
"com.badlogicgames.gdx:gdx-parent:1.9.9": {
|
||||||
"1.9.9": {
|
"gdx-parent-1.9.9.pom": {
|
||||||
"gdx-platform-1.9.9-natives-desktop.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-parent/1.9.9/gdx-parent-1.9.9.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar"
|
],
|
||||||
],
|
"hash": "sha256-JSpktycxGU+lvD37inPSXOa3NXxQLQ+y9W5rTiqaeJM="
|
||||||
"hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8="
|
}
|
||||||
},
|
},
|
||||||
"gdx-platform-1.9.9.pom": {
|
"com.badlogicgames.gdx:gdx-platform:1.9.9": {
|
||||||
"urls": [
|
"gdx-platform-1.9.9-natives-desktop.jar": {
|
||||||
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom"
|
"urls": [
|
||||||
],
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9-natives-desktop.jar"
|
||||||
"hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY="
|
],
|
||||||
}
|
"hash": "sha256-e8c9VPpFH+LeJU6PgmCkOb/jutOxFnO6LPMaTxL2hU8="
|
||||||
|
},
|
||||||
|
"gdx-platform-1.9.9.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/badlogicgames/gdx/gdx-platform/1.9.9/gdx-platform-1.9.9.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-SWnDZyJaErav4Z4sA+D1WA3U1aQOSR64sd8+cQzofSY="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:5": {
|
||||||
|
"oss-parent-5.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,44 +1,60 @@
|
|||||||
{
|
{
|
||||||
"io.micrometer:micrometer-bom": {
|
"io.micrometer:micrometer-bom:1.5.1": {
|
||||||
"1.5.1": {
|
"micrometer-bom-1.5.1.pom": {
|
||||||
"micrometer-bom-1.5.1.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/io/micrometer/micrometer-bom/1.5.1/micrometer-bom-1.5.1.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-bom/1.5.1/micrometer-bom-1.5.1.pom"
|
],
|
||||||
],
|
"hash": "sha256-K/qF6ds8ck5sWvelJBYk+w+K04oQpT/4BtY57WVLRUI="
|
||||||
"hash": "sha256-K/qF6ds8ck5sWvelJBYk+w+K04oQpT/4BtY57WVLRUI="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"io.micrometer:micrometer-core": {
|
"io.micrometer:micrometer-core:1.5.1": {
|
||||||
"1.5.1": {
|
"micrometer-core-1.5.1.jar": {
|
||||||
"micrometer-core-1.5.1.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.jar"
|
],
|
||||||
],
|
"hash": "sha256-DtgVYBDVGDBWMwSfeKC6O+fwqd+N2q4eTizJgQ1wfI8="
|
||||||
"hash": "sha256-DtgVYBDVGDBWMwSfeKC6O+fwqd+N2q4eTizJgQ1wfI8="
|
},
|
||||||
},
|
"micrometer-core-1.5.1.pom": {
|
||||||
"micrometer-core-1.5.1.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/io/micrometer/micrometer-core/1.5.1/micrometer-core-1.5.1.pom"
|
],
|
||||||
],
|
"hash": "sha256-Cb4KaUHaOvdOz7VpDax6kJKuT2KWY5Ci73foX2xl6xw="
|
||||||
"hash": "sha256-Cb4KaUHaOvdOz7VpDax6kJKuT2KWY5Ci73foX2xl6xw="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.hdrhistogram:HdrHistogram": {
|
"org.hdrhistogram:HdrHistogram:2.1.12": {
|
||||||
"2.1.12": {
|
"HdrHistogram-2.1.12.jar": {
|
||||||
"HdrHistogram-2.1.12.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.jar"
|
],
|
||||||
],
|
"hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
|
||||||
"hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
|
},
|
||||||
},
|
"HdrHistogram-2.1.12.pom": {
|
||||||
"HdrHistogram-2.1.12.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/hdrhistogram/HdrHistogram/2.1.12/HdrHistogram-2.1.12.pom"
|
],
|
||||||
],
|
"hash": "sha256-f7PnkMFU0bXiMXC7jL9/cO8ICa8XIp8dywENd5llEIA="
|
||||||
"hash": "sha256-f7PnkMFU0bXiMXC7jL9/cO8ICa8XIp8dywENd5llEIA="
|
}
|
||||||
}
|
},
|
||||||
|
"org.latencyutils:LatencyUtils:2.0.3": {
|
||||||
|
"LatencyUtils-2.0.3.jar": {
|
||||||
|
"urls": [
|
||||||
|
"http://0.0.0.0:8989/m2/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
|
||||||
|
},
|
||||||
|
"LatencyUtils-2.0.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"http://0.0.0.0:8989/m2/org/latencyutils/LatencyUtils/2.0.3/LatencyUtils-2.0.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-jwwBU3kLhK9sCTFtVpvRBu4PAIuTk+gLpHj1v2Vziig="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"http://0.0.0.0:8989/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test-SNAPSHOT1": {
|
"org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT:20070310.181613-3": {
|
||||||
"2.0.2-SNAPSHOT": {
|
"test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": {
|
||||||
"test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.jar"
|
||||||
],
|
],
|
||||||
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
||||||
},
|
}
|
||||||
"test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": {
|
},
|
||||||
"urls": [
|
"org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT": {
|
||||||
],
|
"test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": {
|
||||||
"hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs="
|
"urls": [
|
||||||
}
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,18 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test-SNAPSHOT1": {
|
"org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT:20070310.181613-3": {
|
||||||
"2.0.2-SNAPSHOT": {
|
"test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": {
|
||||||
"test-SNAPSHOT1-2.0.2-20070310.181613-3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.jar"
|
||||||
],
|
],
|
||||||
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
||||||
},
|
}
|
||||||
"test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": {
|
},
|
||||||
"urls": [
|
"org.apache:test-SNAPSHOT1:2.0.2-SNAPSHOT": {
|
||||||
],
|
"test-SNAPSHOT1-2.0.2-20070310.181613-3.pom": {
|
||||||
"hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs="
|
"urls": [
|
||||||
}
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT1/2.0.2-SNAPSHOT/test-SNAPSHOT1-2.0.2-20070310.181613-3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-HkNYH8bwRqh0B760aORWKwMuDrO1E89Y8tx0esl66gs="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,118 @@
|
|||||||
{
|
{
|
||||||
"com.github.anuken:packr": {
|
"com.eclipsesource.minimal-json:minimal-json:0.9.1": {
|
||||||
"-SNAPSHOT": {
|
"minimal-json-0.9.1.jar": {
|
||||||
"packr--SNAPSHOT.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.1/minimal-json-0.9.1.jar"
|
||||||
"https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.jar"
|
],
|
||||||
],
|
"hash": "sha256-pvRb7vRcTbyODylD0CuzTZ2btyDUoX1NwfChHNHvWFg="
|
||||||
"hash": "sha256-XrfVZLc7efr2n3Bz6mOw8DkRI0T8rU8B/MKUMVDl71w="
|
},
|
||||||
},
|
"minimal-json-0.9.1.pom": {
|
||||||
"packr--SNAPSHOT.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/eclipsesource/minimal-json/minimal-json/0.9.1/minimal-json-0.9.1.pom"
|
||||||
"https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.pom"
|
],
|
||||||
],
|
"hash": "sha256-Xb0I7Og8f0XxOeis+0S+gUv4NugvuGAEdvwMuR2awUM="
|
||||||
"hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU="
|
}
|
||||||
}
|
},
|
||||||
|
"com.github.anuken:packr:-SNAPSHOT:packr-1.2-g034efe5-114": {
|
||||||
|
"packr--packr-1.2-g034efe5-114.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-XrfVZLc7efr2n3Bz6mOw8DkRI0T8rU8B/MKUMVDl71w="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.github.anuken:packr:-SNAPSHOT": {
|
||||||
|
"packr--SNAPSHOT.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/github/anuken/packr/-SNAPSHOT/packr--SNAPSHOT.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU="
|
||||||
|
},
|
||||||
|
"packr--packr-1.2-g034efe5-114.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://jitpack.io/com/github/anuken/packr/-SNAPSHOT/packr--packr-1.2-g034efe5-114.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-xP28J7blX1IzuJxD4u/wy1ZbwAT5RAajBcpBWs1fAxU="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.lexicalscope.jewelcli:jewelcli:0.8.9": {
|
||||||
|
"jewelcli-0.8.9.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli/0.8.9/jewelcli-0.8.9.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-edo0/mgFGCboBtIUgBL7NIHJ5pc4ipG9RMwl1piBAvM="
|
||||||
|
},
|
||||||
|
"jewelcli-0.8.9.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli/0.8.9/jewelcli-0.8.9.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-eTF2d4p/6F9cw1QWZQhjpG1Es5CJKI1+DkiheuCZHMQ="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.lexicalscope.jewelcli:jewelcli-parent:0.8.9": {
|
||||||
|
"jewelcli-parent-0.8.9.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/com/lexicalscope/jewelcli/jewelcli-parent/0.8.9/jewelcli-parent-0.8.9.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-+K7AtECUZHhdpChr8qutNwSH30dSEVRwb+728brQ9Is="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.slf4j:slf4j-api:1.6.6": {
|
||||||
|
"slf4j-api-1.6.6.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-Q0VrLuMVKanFEtWB5T4oXGX+3ewgSiwUaUXgMrB4ELo="
|
||||||
|
},
|
||||||
|
"slf4j-api-1.6.6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/1.6.6/slf4j-api-1.6.6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-cxmZMiteIokinNntRiTJQexXG3xh0qJ9alB+9zuXyho="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.slf4j:slf4j-parent:1.6.6": {
|
||||||
|
"slf4j-parent-1.6.6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/1.6.6/slf4j-parent-1.6.6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-QrjCR2CP2OENW2Zs98gKW1nSseEoRQ97bZ0sIM+2sxs="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.slf4j:slf4j-simple:1.6.6": {
|
||||||
|
"slf4j-simple-1.6.6.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.6.6/slf4j-simple-1.6.6.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-Xpfxe7h5v9RDOlHGnjyS/iIQfG/8e8oiRIHy5YmEbgg="
|
||||||
|
},
|
||||||
|
"slf4j-simple-1.6.6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/1.6.6/slf4j-simple-1.6.6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-6eV8yFljFwnFUrbskwj+m6FUncWK7ZA5p+UFzeKrUbM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.zeroturnaround:zt-zip:1.10": {
|
||||||
|
"zt-zip-1.10.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/zeroturnaround/zt-zip/1.10/zt-zip-1.10.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-Vw46sIh5Ok9QLaGJtyutlgzwiqWaFxyDzwj0du1ELBk="
|
||||||
|
},
|
||||||
|
"zt-zip-1.10.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/zeroturnaround/zt-zip/1.10/zt-zip-1.10.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tsgm40wVcdupU51FIac34FxJmuQOi50BgbYLFdbVCns="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test-SNAPSHOT2": {
|
"org.apache:test-SNAPSHOT2:2.0.2-SNAPSHOT": {
|
||||||
"2.0.2-SNAPSHOT": {
|
"test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": {
|
||||||
"test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar"
|
],
|
||||||
],
|
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
||||||
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
},
|
||||||
},
|
"test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": {
|
||||||
"test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom"
|
],
|
||||||
],
|
"hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8="
|
||||||
"hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test-SNAPSHOT2": {
|
"org.apache:test-SNAPSHOT2:2.0.2-SNAPSHOT": {
|
||||||
"2.0.2-SNAPSHOT": {
|
"test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": {
|
||||||
"test-SNAPSHOT2-2.0.2-SNAPSHOT.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.jar"
|
],
|
||||||
],
|
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
||||||
"hash": "sha256-a99mtb8qROZYvqLuhmlasVCgbmAL9nzVzOJFrVSWLGE="
|
},
|
||||||
},
|
"test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": {
|
||||||
"test-SNAPSHOT2-2.0.2-SNAPSHOT.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test-SNAPSHOT2/2.0.2-SNAPSHOT/test-SNAPSHOT2-2.0.2-SNAPSHOT.pom"
|
],
|
||||||
],
|
"hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8="
|
||||||
"hash": "sha256-XCACfgVM2OthMcb9rU/nVQvjiJawqxOd5CSRmvql1O8="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,48 +1,44 @@
|
|||||||
{
|
{
|
||||||
"org.apache:foo": {
|
"org.apache:foo:2.0.0": {
|
||||||
"2.0.0": {
|
"foo-2.0.0.jar": {
|
||||||
"foo-2.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/foo/2.0.0/foo-2.0.0.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/2.0.0/foo-2.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
||||||
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
|
||||||
},
|
|
||||||
"foo-2.0.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/2.0.0/foo-2.0.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-gcL/k4xoI5SK4qDNcyH1uHkgiGQv3WohPb45Gsb9gi8="
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"1.0.0": {
|
"foo-2.0.0.pom": {
|
||||||
"foo-1.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/foo/2.0.0/foo-2.0.0.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/1.0.0/foo-1.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-gcL/k4xoI5SK4qDNcyH1uHkgiGQv3WohPb45Gsb9gi8="
|
||||||
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
|
||||||
},
|
|
||||||
"foo-1.0.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/foo/1.0.0/foo-1.0.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-roNL3MgAJuUPxIdJJiSpjU3yEFlJFDQ99QvnaWlkVcE="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.apache:test": {
|
"org.apache:foo:1.0.0": {
|
||||||
"1.0.0": {
|
"foo-1.0.0.jar": {
|
||||||
"test-1.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/foo/1.0.0/foo-1.0.0.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
||||||
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
},
|
||||||
},
|
"foo-1.0.0.pom": {
|
||||||
"test-1.0.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/foo/1.0.0/foo-1.0.0.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-roNL3MgAJuUPxIdJJiSpjU3yEFlJFDQ99QvnaWlkVcE="
|
||||||
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
}
|
||||||
}
|
},
|
||||||
|
"org.apache:test:1.0.0": {
|
||||||
|
"test-1.0.0.jar": {
|
||||||
|
"urls": [
|
||||||
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
||||||
|
},
|
||||||
|
"test-1.0.0.pom": {
|
||||||
|
"urls": [
|
||||||
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,146 +1,216 @@
|
|||||||
{
|
{
|
||||||
"com.googlecode.javaewah:JavaEWAH": {
|
"com.googlecode.javaewah:JavaEWAH:1.1.6": {
|
||||||
"1.1.6": {
|
"JavaEWAH-1.1.6.jar": {
|
||||||
"JavaEWAH-1.1.6.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar"
|
||||||
"https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar"
|
],
|
||||||
],
|
"hash": "sha256-941EoeOHfxznSLSoXfUXHl6Omlw8b2O7kAPbb4TM6VI="
|
||||||
"hash": "sha256-941EoeOHfxznSLSoXfUXHl6Omlw8b2O7kAPbb4TM6VI="
|
},
|
||||||
},
|
"JavaEWAH-1.1.6.pom": {
|
||||||
"JavaEWAH-1.1.6.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.pom"
|
||||||
"https://plugins.gradle.org/m2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.pom"
|
],
|
||||||
],
|
"hash": "sha256-f0/5GbHuF783duBYo/IOYXPbI6XkTPLRB+x1cMGGq/A="
|
||||||
"hash": "sha256-f0/5GbHuF783duBYo/IOYXPbI6XkTPLRB+x1cMGGq/A="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"com.jcraft:jsch": {
|
"com.jcraft:jsch:0.1.54": {
|
||||||
"0.1.54": {
|
"jsch-0.1.54.jar": {
|
||||||
"jsch-0.1.54.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar"
|
||||||
"https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar"
|
],
|
||||||
],
|
"hash": "sha256-kusnOjMWdiR4/dT+A6DOGELFb0lsnBL+EjXbgEUOH9s="
|
||||||
"hash": "sha256-kusnOjMWdiR4/dT+A6DOGELFb0lsnBL+EjXbgEUOH9s="
|
},
|
||||||
},
|
"jsch-0.1.54.pom": {
|
||||||
"jsch-0.1.54.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.pom"
|
||||||
"https://plugins.gradle.org/m2/com/jcraft/jsch/0.1.54/jsch-0.1.54.pom"
|
],
|
||||||
],
|
"hash": "sha256-q49RIDm+f2riDhjnQ7Sp2KIJWElEMZF9pYrlqu+KNHg="
|
||||||
"hash": "sha256-q49RIDm+f2riDhjnQ7Sp2KIJWElEMZF9pYrlqu+KNHg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commons-codec:commons-codec": {
|
"commons-codec:commons-codec:1.6": {
|
||||||
"1.6": {
|
"commons-codec-1.6.jar": {
|
||||||
"commons-codec-1.6.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar"
|
||||||
"https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.jar"
|
],
|
||||||
],
|
"hash": "sha256-VLNOlBuOFBS9PkDXNu/TSBdy3CbbMpb2qkXOyfYgPYY="
|
||||||
"hash": "sha256-VLNOlBuOFBS9PkDXNu/TSBdy3CbbMpb2qkXOyfYgPYY="
|
},
|
||||||
},
|
"commons-codec-1.6.pom": {
|
||||||
"commons-codec-1.6.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom"
|
||||||
"https://plugins.gradle.org/m2/commons-codec/commons-codec/1.6/commons-codec-1.6.pom"
|
],
|
||||||
],
|
"hash": "sha256-oG410//zprgT2UiU6/PkmPlUDIZMWzmueDkH46bHKIk="
|
||||||
"hash": "sha256-oG410//zprgT2UiU6/PkmPlUDIZMWzmueDkH46bHKIk="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commons-logging:commons-logging": {
|
"commons-logging:commons-logging:1.1.3": {
|
||||||
"1.1.3": {
|
"commons-logging-1.1.3.jar": {
|
||||||
"commons-logging-1.1.3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
||||||
"https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar"
|
],
|
||||||
],
|
"hash": "sha256-cJA/b8gumQjI2p8gRD9h2Q8IcKMSZCmR/oRioLk5F4Q="
|
||||||
"hash": "sha256-cJA/b8gumQjI2p8gRD9h2Q8IcKMSZCmR/oRioLk5F4Q="
|
},
|
||||||
},
|
"commons-logging-1.1.3.pom": {
|
||||||
"commons-logging-1.1.3.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom"
|
||||||
"https://plugins.gradle.org/m2/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.pom"
|
],
|
||||||
],
|
"hash": "sha256-MlCsOsa9YO0GMfXNAzUDKymT1j5AWmrgVV0np+SGWEk="
|
||||||
"hash": "sha256-MlCsOsa9YO0GMfXNAzUDKymT1j5AWmrgVV0np+SGWEk="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gradle.plugin.net.vivin:gradle-semantic-build-versioning": {
|
"gradle.plugin.net.vivin:gradle-semantic-build-versioning:4.0.0": {
|
||||||
"4.0.0": {
|
"gradle-semantic-build-versioning-4.0.0.jar": {
|
||||||
"gradle-semantic-build-versioning-4.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.jar"
|
||||||
"https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-UTjmfOjgGUN4ALk8n2+dD8vr763Jb7xOvAl1yZomHvg="
|
||||||
"hash": "sha256-UTjmfOjgGUN4ALk8n2+dD8vr763Jb7xOvAl1yZomHvg="
|
},
|
||||||
},
|
"gradle-semantic-build-versioning-4.0.0.pom": {
|
||||||
"gradle-semantic-build-versioning-4.0.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.pom"
|
||||||
"https://plugins.gradle.org/m2/gradle/plugin/net/vivin/gradle-semantic-build-versioning/4.0.0/gradle-semantic-build-versioning-4.0.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-TygodBYH7RAtletfGJ1JbHhA7UY6zqifHlGmBWdxTvc="
|
||||||
"hash": "sha256-TygodBYH7RAtletfGJ1JbHhA7UY6zqifHlGmBWdxTvc="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.apache.httpcomponents:httpclient": {
|
"org.apache:apache:13": {
|
||||||
"4.3.6": {
|
"apache-13.pom": {
|
||||||
"httpclient-4.3.6.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/org/apache/apache/13/apache-13.pom"
|
||||||
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar"
|
],
|
||||||
],
|
"hash": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0="
|
||||||
"hash": "sha256-eYONnq73PU+FLGOkgIMMOi1LWQ8Ks66BWkiUY+RxQAQ="
|
|
||||||
},
|
|
||||||
"httpclient-4.3.6.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-0CY09hMekUlhwCqoNnEeuscnBLJ+JsW9Iju62JsbZMM="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.apache.httpcomponents:httpcore": {
|
"org.apache:apache:9": {
|
||||||
"4.3.3": {
|
"apache-9.pom": {
|
||||||
"httpcore-4.3.3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/org/apache/apache/9/apache-9.pom"
|
||||||
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar"
|
],
|
||||||
],
|
"hash": "sha256-SUbmClR8jtpp87wjxbbw2tz4Rp6kmx0dp940rs/PGN0="
|
||||||
"hash": "sha256-UoXegK8WUcSJMTuRqfQMZaTNy2s73nFvzAKNFoaaWpM="
|
|
||||||
},
|
|
||||||
"httpcore-4.3.3.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-tCf3z2fHWk4/niEI01v0UwNXPBRex3j8rc/6zvF6EmQ="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.eclipse.jgit:org.eclipse.jgit": {
|
"org.apache.commons:commons-parent:28": {
|
||||||
"4.8.0.201706111038-r": {
|
"commons-parent-28.pom": {
|
||||||
"org.eclipse.jgit-4.8.0.201706111038-r.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/org/apache/commons/commons-parent/28/commons-parent-28.pom"
|
||||||
"https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.jar"
|
],
|
||||||
],
|
"hash": "sha256-FHM6aOixILad5gzZbSIhRtzzLwPBxsxqdQsSabr+hsc="
|
||||||
"hash": "sha256-SdkS6NXM4N0I3KPTkBiduGkqj34zY8274YJYFGIACro="
|
|
||||||
},
|
|
||||||
"org.eclipse.jgit-4.8.0.201706111038-r.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-pVap9a38avSbKhLnLcPNfkPbj9whbA81iFlyovWton0="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.slf4j:slf4j-api": {
|
"org.apache.commons:commons-parent:22": {
|
||||||
"1.7.2": {
|
"commons-parent-22.pom": {
|
||||||
"slf4j-api-1.7.2.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://plugins.gradle.org/m2/org/apache/commons/commons-parent/22/commons-parent-22.pom"
|
||||||
"https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar"
|
],
|
||||||
],
|
"hash": "sha256-+4xeVeMKet20/yEIWKDo0klO1nV7vhkBLamdUVhsPLs="
|
||||||
"hash": "sha256-O654m0ATM7Kh0WA7f6Vz4ZkIYoGRcHID9utwjN7iwFI="
|
}
|
||||||
},
|
},
|
||||||
"slf4j-api-1.7.2.pom": {
|
"org.apache.httpcomponents:httpclient:4.3.6": {
|
||||||
"urls": [
|
"httpclient-4.3.6.jar": {
|
||||||
"https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.pom"
|
"urls": [
|
||||||
],
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar"
|
||||||
"hash": "sha256-LqynGv4KFRb0q9jp/5B4ONJo84yBw6VCzOjX87h8XUw="
|
],
|
||||||
}
|
"hash": "sha256-eYONnq73PU+FLGOkgIMMOi1LWQ8Ks66BWkiUY+RxQAQ="
|
||||||
|
},
|
||||||
|
"httpclient-4.3.6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-0CY09hMekUlhwCqoNnEeuscnBLJ+JsW9Iju62JsbZMM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.apache.httpcomponents:httpcomponents-client:4.3.6": {
|
||||||
|
"httpcomponents-client-4.3.6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-client/4.3.6/httpcomponents-client-4.3.6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-StooJ7SWM5gmiRx8gdzrpkcCneb8GIixazyrVlCrzGM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.apache.httpcomponents:httpcomponents-core:4.3.3": {
|
||||||
|
"httpcomponents-core-4.3.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcomponents-core/4.3.3/httpcomponents-core-4.3.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-wW4vwNSbp6As71teJgBYWp9nNVMyim+eWPJClt8d0DE="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.apache.httpcomponents:httpcore:4.3.3": {
|
||||||
|
"httpcore-4.3.3.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-UoXegK8WUcSJMTuRqfQMZaTNy2s73nFvzAKNFoaaWpM="
|
||||||
|
},
|
||||||
|
"httpcore-4.3.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tCf3z2fHWk4/niEI01v0UwNXPBRex3j8rc/6zvF6EmQ="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.apache.httpcomponents:project:7": {
|
||||||
|
"project-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/apache/httpcomponents/project/7/project-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-PW66QoVVpVjeBGtddurMH1pUtPXyC4TWNu16/xiqSMM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.eclipse.jgit:org.eclipse.jgit:4.8.0.201706111038-r": {
|
||||||
|
"org.eclipse.jgit-4.8.0.201706111038-r.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-SdkS6NXM4N0I3KPTkBiduGkqj34zY8274YJYFGIACro="
|
||||||
|
},
|
||||||
|
"org.eclipse.jgit-4.8.0.201706111038-r.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit/4.8.0.201706111038-r/org.eclipse.jgit-4.8.0.201706111038-r.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-pVap9a38avSbKhLnLcPNfkPbj9whbA81iFlyovWton0="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.eclipse.jgit:org.eclipse.jgit-parent:4.8.0.201706111038-r": {
|
||||||
|
"org.eclipse.jgit-parent-4.8.0.201706111038-r.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/eclipse/jgit/org.eclipse.jgit-parent/4.8.0.201706111038-r/org.eclipse.jgit-parent-4.8.0.201706111038-r.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-OWpMyJQgaHP/EH0GapliUrC0f1hbiM9X/Dsx6T1JKHg="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.slf4j:slf4j-api:1.7.2": {
|
||||||
|
"slf4j-api-1.7.2.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-O654m0ATM7Kh0WA7f6Vz4ZkIYoGRcHID9utwjN7iwFI="
|
||||||
|
},
|
||||||
|
"slf4j-api-1.7.2.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-LqynGv4KFRb0q9jp/5B4ONJo84yBw6VCzOjX87h8XUw="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.slf4j:slf4j-parent:1.7.2": {
|
||||||
|
"slf4j-parent-1.7.2.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/slf4j/slf4j-parent/1.7.2/slf4j-parent-1.7.2.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-HY4ISm8jhK3kJoUzK1Kg7OCQR4ZB3BTA+oxS4eKYRCU="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:6": {
|
||||||
|
"oss-parent-6.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/6/oss-parent-6.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tDBtE+j1OSRYobMIZvHP8WGz0uaZmojQWe6jkyyKhJk="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:5": {
|
||||||
|
"oss-parent-5.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/5/oss-parent-5.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-FnjUEgpYXYpjATGu7ExSTZKDmFg7fqthbufVqH9SDT0="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,34 +1,30 @@
|
|||||||
{
|
{
|
||||||
"org.opendof.core-java:dof-cipher-sms4": {
|
"org.opendof.core-java:dof-cipher-sms4:1.0": {
|
||||||
"1.0": {
|
"dof-cipher-sms4-1.0.jar": {
|
||||||
"dof-cipher-sms4-1.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://asset.opendof.org/artifact/org.opendof.core-java/dof-cipher-sms4/1.0/jars/dof-cipher-sms4-1.0.jar"
|
||||||
"https://asset.opendof.org/artifact/org.opendof.core-java/dof-cipher-sms4/1.0/dof-cipher-sms4-1.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-/Joo51NA6nBPEwFuFcnDc10JQZDE8P3jF3P4gl0vpMA="
|
||||||
"hash": "sha256-/Joo51NA6nBPEwFuFcnDc10JQZDE8P3jF3P4gl0vpMA="
|
},
|
||||||
},
|
"ivy.xml": {
|
||||||
"ivy-1.0.xml": {
|
"urls": [
|
||||||
"urls": [
|
"https://asset.opendof.org/ivy2/org.opendof.core-java/dof-cipher-sms4/1.0/ivy.xml"
|
||||||
"https://asset.opendof.org/ivy2/org.opendof.core-java/dof-cipher-sms4/1.0/ivy.xml"
|
],
|
||||||
],
|
"hash": "sha256-rh+pQpXqPP/cmBD8slvwMrKlWCUb3JNzW3l58hd7oJ8="
|
||||||
"hash": "sha256-rh+pQpXqPP/cmBD8slvwMrKlWCUb3JNzW3l58hd7oJ8="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.opendof.core-java:dof-oal": {
|
"org.opendof.core-java:dof-oal:7.0.2": {
|
||||||
"7.0.2": {
|
"dof-oal-7.0.2.jar": {
|
||||||
"dof-oal-7.0.2.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://asset.opendof.org/artifact/org.opendof.core-java/dof-oal/7.0.2/jars/dof-oal-7.0.2.jar"
|
||||||
"https://asset.opendof.org/artifact/org.opendof.core-java/dof-oal/7.0.2/dof-oal-7.0.2.jar"
|
],
|
||||||
],
|
"hash": "sha256-u+FUhQGBA8MRl28mXMTSnZ2HY2ysPHq7h9lANmHBK40="
|
||||||
"hash": "sha256-u+FUhQGBA8MRl28mXMTSnZ2HY2ysPHq7h9lANmHBK40="
|
},
|
||||||
},
|
"ivy.xml": {
|
||||||
"ivy-7.0.2.xml": {
|
"urls": [
|
||||||
"urls": [
|
"https://asset.opendof.org/ivy2/org.opendof.core-java/dof-oal/7.0.2/ivy.xml"
|
||||||
"https://asset.opendof.org/ivy2/org.opendof.core-java/dof-oal/7.0.2/ivy.xml"
|
],
|
||||||
],
|
"hash": "sha256-KZoUVyoDcfH/B/9V1SVqNiA/XIb3zlwoJkjb/jD+xig="
|
||||||
"hash": "sha256-KZoUVyoDcfH/B/9V1SVqNiA/XIb3zlwoJkjb/jD+xig="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,16 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test": {
|
"org.apache:test:1.0.0": {
|
||||||
"1.0.0": {
|
"test-1.0.0.jar": {
|
||||||
"test-1.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
||||||
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
},
|
||||||
},
|
"test-1.0.0.pom": {
|
||||||
"test-1.0.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
||||||
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
{
|
{
|
||||||
"org.apache:test": {
|
"org.apache:test:1.0.0": {
|
||||||
"1.0.0": {
|
"test-1.0.0.jar": {
|
||||||
"test-1.0.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
||||||
"hash": "sha256-M95zEuAwVCam7c2rKIET5qs4Q60sA84RyTA3a9jdQd8="
|
},
|
||||||
},
|
"test-1.0.0.pom": {
|
||||||
"test-1.0.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"http://0.0.0.0:8989/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
||||||
"file:/home/tad/proj/gradle2nix/fixtures/repositories/m2/org/apache/test/1.0.0/test-1.0.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
||||||
"hash": "sha256-sYk8m4+T+hRJ+43tpPkthrE/JftrsMnmuzORCLCK1To="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,128 +1,146 @@
|
|||||||
{
|
{
|
||||||
"com.squareup.moshi:moshi": {
|
"com.squareup.moshi:moshi:1.8.0": {
|
||||||
"1.8.0": {
|
"moshi-1.8.0.jar": {
|
||||||
"moshi-1.8.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
||||||
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
|
||||||
},
|
|
||||||
"moshi-1.8.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"com.squareup.okio:okio": {
|
|
||||||
"2.2.2": {
|
|
||||||
"okio-2.2.2.jar": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
|
||||||
],
|
|
||||||
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
|
||||||
},
|
|
||||||
"okio-2.2.2.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"1.16.0": {
|
"moshi-1.8.0.pom": {
|
||||||
"okio-1.16.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
||||||
"hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4="
|
|
||||||
},
|
|
||||||
"okio-1.16.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"junit:junit": {
|
"com.squareup.moshi:moshi-parent:1.8.0": {
|
||||||
"4.12": {
|
"moshi-parent-1.8.0.pom": {
|
||||||
"junit-4.12.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar"
|
],
|
||||||
],
|
"hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c="
|
||||||
"hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo="
|
|
||||||
},
|
|
||||||
"junit-4.12.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.hamcrest:hamcrest-core": {
|
"com.squareup.okio:okio:2.2.2": {
|
||||||
"1.3": {
|
"okio-2.2.2.jar": {
|
||||||
"hamcrest-core-1.3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
|
],
|
||||||
],
|
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
||||||
"hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok="
|
},
|
||||||
},
|
"okio-2.2.2.pom": {
|
||||||
"hamcrest-core-1.3.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom"
|
],
|
||||||
],
|
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
||||||
"hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib": {
|
"com.squareup.okio:okio:1.16.0": {
|
||||||
"1.2.60": {
|
"okio-1.16.0.jar": {
|
||||||
"kotlin-stdlib-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4="
|
||||||
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
},
|
||||||
},
|
"okio-1.16.0.pom": {
|
||||||
"kotlin-stdlib-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY="
|
||||||
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib-common": {
|
"com.squareup.okio:okio-parent:1.16.0": {
|
||||||
"1.2.60": {
|
"okio-parent-1.16.0.pom": {
|
||||||
"kotlin-stdlib-common-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-C3Qkw/qrO7UzMJbjmVf4j41QzgyYv7pxo/z6oKrwVSw="
|
||||||
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
|
||||||
},
|
|
||||||
"kotlin-stdlib-common-1.2.60.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains:annotations": {
|
"junit:junit:4.12": {
|
||||||
"13.0": {
|
"junit-4.12.jar": {
|
||||||
"annotations-13.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo="
|
||||||
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
},
|
||||||
},
|
"junit-4.12.pom": {
|
||||||
"annotations-13.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
||||||
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
}
|
||||||
}
|
},
|
||||||
|
"org.hamcrest:hamcrest-core:1.3": {
|
||||||
|
"hamcrest-core-1.3.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok="
|
||||||
|
},
|
||||||
|
"hamcrest-core-1.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.hamcrest:hamcrest-parent:1.3": {
|
||||||
|
"hamcrest-parent-1.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains:annotations:13.0": {
|
||||||
|
"annotations-13.0.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
||||||
|
},
|
||||||
|
"annotations-13.0.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib:1.2.60": {
|
||||||
|
"kotlin-stdlib-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": {
|
||||||
|
"kotlin-stdlib-common-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-common-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,128 +1,146 @@
|
|||||||
{
|
{
|
||||||
"com.squareup.moshi:moshi": {
|
"com.squareup.moshi:moshi:1.8.0": {
|
||||||
"1.8.0": {
|
"moshi-1.8.0.jar": {
|
||||||
"moshi-1.8.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
||||||
"hash": "sha256-Qv50bSaU6hH+agK+zZ2iyj2v6Xye/VCg+a9cRZbnSmo="
|
|
||||||
},
|
|
||||||
"moshi-1.8.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"com.squareup.okio:okio": {
|
|
||||||
"2.2.2": {
|
|
||||||
"okio-2.2.2.jar": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
|
||||||
],
|
|
||||||
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
|
||||||
},
|
|
||||||
"okio-2.2.2.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"1.16.0": {
|
"moshi-1.8.0.pom": {
|
||||||
"okio-1.16.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi/1.8.0/moshi-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-FLuAWbnddiACWSkN+IfjfmaaB0qsnImUAePIEC/lII8="
|
||||||
"hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4="
|
|
||||||
},
|
|
||||||
"okio-1.16.0.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"junit:junit": {
|
"com.squareup.moshi:moshi-parent:1.8.0": {
|
||||||
"4.12": {
|
"moshi-parent-1.8.0.pom": {
|
||||||
"junit-4.12.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/moshi/moshi-parent/1.8.0/moshi-parent-1.8.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar"
|
],
|
||||||
],
|
"hash": "sha256-2t8UzX/uSexrgqkORdccwax1imVTFwGtlNy+98xgP7c="
|
||||||
"hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo="
|
|
||||||
},
|
|
||||||
"junit-4.12.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.hamcrest:hamcrest-core": {
|
"com.squareup.okio:okio:2.2.2": {
|
||||||
"1.3": {
|
"okio-2.2.2.jar": {
|
||||||
"hamcrest-core-1.3.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
|
],
|
||||||
],
|
"hash": "sha256-5YyXQGprsROIk3UCmaxjxqoEs4trSerhv8rRpj75uhs="
|
||||||
"hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok="
|
},
|
||||||
},
|
"okio-2.2.2.pom": {
|
||||||
"hamcrest-core-1.3.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/2.2.2/okio-2.2.2.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom"
|
],
|
||||||
],
|
"hash": "sha256-/WIZiPf2lXAlc13G3QkLAKIPOju413ynkDYHf2KbFAs="
|
||||||
"hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib": {
|
"com.squareup.okio:okio:1.16.0": {
|
||||||
"1.2.60": {
|
"okio-1.16.0.jar": {
|
||||||
"kotlin-stdlib-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-7ASE/xkDZA44RcKxCruZ7/LTIwj/40WeX5IwmkUbnH4="
|
||||||
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
},
|
||||||
},
|
"okio-1.16.0.pom": {
|
||||||
"kotlin-stdlib-1.2.60.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio/1.16.0/okio-1.16.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
],
|
||||||
],
|
"hash": "sha256-HSUhYhwIdRI6qRMRsv6O3v0O2T9mvm3+oYzGG8XJnjY="
|
||||||
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains.kotlin:kotlin-stdlib-common": {
|
"com.squareup.okio:okio-parent:1.16.0": {
|
||||||
"1.2.60": {
|
"okio-parent-1.16.0.pom": {
|
||||||
"kotlin-stdlib-common-1.2.60.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/com/squareup/okio/okio-parent/1.16.0/okio-parent-1.16.0.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
],
|
||||||
],
|
"hash": "sha256-C3Qkw/qrO7UzMJbjmVf4j41QzgyYv7pxo/z6oKrwVSw="
|
||||||
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
|
||||||
},
|
|
||||||
"kotlin-stdlib-common-1.2.60.pom": {
|
|
||||||
"urls": [
|
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
|
||||||
],
|
|
||||||
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"org.jetbrains:annotations": {
|
"junit:junit:4.12": {
|
||||||
"13.0": {
|
"junit-4.12.jar": {
|
||||||
"annotations-13.0.jar": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.jar"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
],
|
||||||
],
|
"hash": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo="
|
||||||
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
},
|
||||||
},
|
"junit-4.12.pom": {
|
||||||
"annotations-13.0.pom": {
|
"urls": [
|
||||||
"urls": [
|
"https://repo.maven.apache.org/maven2/junit/junit/4.12/junit-4.12.pom"
|
||||||
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
],
|
||||||
],
|
"hash": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ="
|
||||||
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
}
|
||||||
}
|
},
|
||||||
|
"org.hamcrest:hamcrest-core:1.3": {
|
||||||
|
"hamcrest-core-1.3.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok="
|
||||||
|
},
|
||||||
|
"hamcrest-core-1.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.hamcrest:hamcrest-parent:1.3": {
|
||||||
|
"hamcrest-parent-1.3.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains:annotations:13.0": {
|
||||||
|
"annotations-13.0.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg="
|
||||||
|
},
|
||||||
|
"annotations-13.0.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib:1.2.60": {
|
||||||
|
"kotlin-stdlib-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-ahMCmPUXGsUqHiSW9+rnhbb1ZBbqPMuZ5DRNBNg/8HE="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.2.60/kotlin-stdlib-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-5jKJkgnmtMqrlA/YLk7GOjLjJkP4Fff6cJdkeJDXnxg="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.jetbrains.kotlin:kotlin-stdlib-common:1.2.60": {
|
||||||
|
"kotlin-stdlib-common-1.2.60.jar": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.jar"
|
||||||
|
],
|
||||||
|
"hash": "sha256-CbQ3WgZc8SeryZjF3PIrFmTEWvQrSJSZ16j0+Kt5P7E="
|
||||||
|
},
|
||||||
|
"kotlin-stdlib-common-1.2.60.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.60/kotlin-stdlib-common-1.2.60.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-gwwnrx4c8k8PUm6kV5AcQ/OMGbtvfl03Y8PSU98bjaE="
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"org.sonatype.oss:oss-parent:7": {
|
||||||
|
"oss-parent-7.pom": {
|
||||||
|
"urls": [
|
||||||
|
"https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom"
|
||||||
|
],
|
||||||
|
"hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,10 +11,10 @@ dependencies {
|
|||||||
implementation("com.natpryce:konfig:1.6.10.0")
|
implementation("com.natpryce:konfig:1.6.10.0")
|
||||||
implementation("com.github.pengrad:java-telegram-bot-api:4.6.0")
|
implementation("com.github.pengrad:java-telegram-bot-api:4.6.0")
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3")
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.3")
|
||||||
implementation("org.jetbrains.exposed:exposed-core:0.21.1")
|
implementation("org.jetbrains.exposed:exposed-core:0.50.1")
|
||||||
implementation("org.jetbrains.exposed", "exposed-dao", "0.21.1")
|
implementation("org.jetbrains.exposed", "exposed-dao", "0.50.1")
|
||||||
implementation("org.jetbrains.exposed", "exposed-jdbc", "0.21.1")
|
implementation("org.jetbrains.exposed", "exposed-jdbc", "0.50.1")
|
||||||
implementation("org.jetbrains.exposed", "exposed-jodatime", "0.21.1")
|
implementation("org.jetbrains.exposed", "exposed-jodatime", "0.50.1")
|
||||||
implementation("io.javalin:javalin:3.7.0")
|
implementation("io.javalin:javalin:3.7.0")
|
||||||
implementation("org.slf4j:slf4j-simple:1.8.0-beta4")
|
implementation("org.slf4j:slf4j-simple:1.8.0-beta4")
|
||||||
implementation(group = "org.xerial", name = "sqlite-jdbc", version = "3.30.1")
|
implementation(group = "org.xerial", name = "sqlite-jdbc", version = "3.30.1")
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
plugins {
|
||||||
|
java
|
||||||
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
println(uri(System.getProperty("org.nixos.gradle2nix.m2")))
|
||||||
|
isAllowInsecureProtocol = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(platform("io.micrometer:micrometer-bom:1.5.1"))
|
||||||
|
implementation("io.micrometer:micrometer-core")
|
||||||
|
}
|
||||||
@@ -3,7 +3,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
allowInsecureProtocol = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -4,7 +4,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
isAllowInsecureProtocol = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -3,6 +3,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
maven { url 'https://jitpack.io' }
|
maven { url 'https://jitpack.io' }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3,7 +3,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
allowInsecureProtocol = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -4,7 +4,10 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
isAllowInsecureProtocol = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
allowInsecureProtocol true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -3,7 +3,10 @@ group = 'org.test.included'
|
|||||||
version = '1.0'
|
version = '1.0'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
allowInsecureProtocol true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
buildscript {
|
buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
maven { url = uri(System.getProperty("org.nixos.gradle2nix.m2")) }
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
allowInsecureProtocol true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'org.apache:foo:2.0.0'
|
classpath 'org.apache:foo:2.0.0'
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
package projects.s3.maven.groovy
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id('java')
|
id('java')
|
||||||
}
|
}
|
||||||
1
fixtures/projects/s3/maven/groovy/settings.gradle
Normal file
1
fixtures/projects/s3/maven/groovy/settings.gradle
Normal file
@@ -0,0 +1 @@
|
|||||||
|
package projects.s3.maven.groovy
|
||||||
@@ -2,6 +2,7 @@ buildscript {
|
|||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
url System.getProperty("org.nixos.gradle2nix.m2")
|
url System.getProperty("org.nixos.gradle2nix.m2")
|
||||||
|
allowInsecureProtocol true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
dependencyResolutionManagement {
|
||||||
|
repositories {
|
||||||
|
maven {
|
||||||
|
url = uri(System.getProperty("org.nixos.gradle2nix.m2"))
|
||||||
|
isAllowInsecureProtocol = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
|
||||||
|
}
|
||||||
@@ -0,0 +1,155 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
~ Copyright (c) 2007-2011 Sonatype, Inc. All rights reserved.
|
||||||
|
~
|
||||||
|
~ This program is licensed to you under the Apache License Version 2.0,
|
||||||
|
~ and you may not use this file except in compliance with the Apache License Version 2.0.
|
||||||
|
~ You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
~
|
||||||
|
~ Unless required by applicable law or agreed to in writing,
|
||||||
|
~ software distributed under the Apache License Version 2.0 is distributed on an
|
||||||
|
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
~ See the Apache License Version 2.0 for the specific language governing permissions and limitations there under.
|
||||||
|
-->
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.sonatype.oss</groupId>
|
||||||
|
<artifactId>oss-parent</artifactId>
|
||||||
|
<version>7</version>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
|
<name>Sonatype OSS Parent</name>
|
||||||
|
<url>http://nexus.sonatype.org/oss-repository-hosting.html</url>
|
||||||
|
<description>Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/ </description>
|
||||||
|
|
||||||
|
<scm>
|
||||||
|
<connection>scm:svn:http://svn.sonatype.org/spice/tags/oss-parent-7</connection>
|
||||||
|
<developerConnection>scm:svn:https://svn.sonatype.org/spice/tags/oss-parent-7</developerConnection>
|
||||||
|
<url>http://svn.sonatype.org/spice/tags/oss-parent-7</url>
|
||||||
|
</scm>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>sonatype-nexus-snapshots</id>
|
||||||
|
<name>Sonatype Nexus Snapshots</name>
|
||||||
|
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||||
|
<releases>
|
||||||
|
<enabled>false</enabled>
|
||||||
|
</releases>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</snapshots>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
|
||||||
|
<distributionManagement>
|
||||||
|
<snapshotRepository>
|
||||||
|
<id>sonatype-nexus-snapshots</id>
|
||||||
|
<name>Sonatype Nexus Snapshots</name>
|
||||||
|
<url>${sonatypeOssDistMgmtSnapshotsUrl}</url>
|
||||||
|
</snapshotRepository>
|
||||||
|
<repository>
|
||||||
|
<id>sonatype-nexus-staging</id>
|
||||||
|
<name>Nexus Release Repository</name>
|
||||||
|
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||||
|
</repository>
|
||||||
|
</distributionManagement>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
|
<version>1.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>enforce-maven</id>
|
||||||
|
<goals>
|
||||||
|
<goal>enforce</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<rules>
|
||||||
|
<requireMavenVersion>
|
||||||
|
<version>(,2.1.0),(2.1.0,2.2.0),(2.2.0,)</version>
|
||||||
|
<message>Maven 2.1.0 and 2.2.0 produce incorrect GPG signatures and checksums respectively.</message>
|
||||||
|
</requireMavenVersion>
|
||||||
|
</rules>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-release-plugin</artifactId>
|
||||||
|
<version>2.1</version>
|
||||||
|
<configuration>
|
||||||
|
<mavenExecutorId>forked-path</mavenExecutorId>
|
||||||
|
<useReleaseProfile>false</useReleaseProfile>
|
||||||
|
<arguments>-Psonatype-oss-release</arguments>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<sonatypeOssDistMgmtSnapshotsUrl>https://oss.sonatype.org/content/repositories/snapshots/</sonatypeOssDistMgmtSnapshotsUrl>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>sonatype-oss-release</id>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
<version>2.1.2</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-sources</id>
|
||||||
|
<goals>
|
||||||
|
<goal>jar-no-fork</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
|
<version>2.7</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>attach-javadocs</id>
|
||||||
|
<goals>
|
||||||
|
<goal>jar</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-gpg-plugin</artifactId>
|
||||||
|
<version>1.1</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>sign-artifacts</id>
|
||||||
|
<phase>verify</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>sign</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
|
</project>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
3e418cf7f2607bf359e6c514a992cb38
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
46b8a785b60a2767095b8611613b58577e96d4c9
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<metadata>
|
||||||
|
<groupId>org.sonatype.oss</groupId>
|
||||||
|
<artifactId>oss-parent</artifactId>
|
||||||
|
<versioning>
|
||||||
|
<latest>7</latest>
|
||||||
|
<release>7</release>
|
||||||
|
<versions>
|
||||||
|
<version>1</version>
|
||||||
|
<version>2</version>
|
||||||
|
<version>3</version>
|
||||||
|
<version>4</version>
|
||||||
|
<version>5</version>
|
||||||
|
<version>6</version>
|
||||||
|
<version>7</version>
|
||||||
|
</versions>
|
||||||
|
<lastUpdated>20110307124442</lastUpdated>
|
||||||
|
</versioning>
|
||||||
|
</metadata>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user