Hello,
I'm creating Minecraft's mod, and I want to use kodein-db
for recording.
But gradle shadowJar
doesn't work.
I appreciate your help and your work.
Here's an error message and build.gradle
.
Gradle: v7.2
- Error message of
gradle shadowJar
Could not determine the dependencies of task ':shadowJar'.
> Could not resolve all dependencies for configuration ':shadow'.
> Could not resolve org.kodein.db:kodein-leveldb:0.8.1-beta.
Required by:
project : > org.kodein.db:kodein-db-jvm:0.8.1-beta
project : > org.kodein.db:kodein-leveldb-jni-jvm:0.8.1-beta > org.kodein.db:kodein-leveldb-jni-jvm-linux:0.8.1-beta
project : > org.kodein.db:kodein-leveldb-jni-jvm:0.8.1-beta > org.kodein.db:kodein-leveldb-jni-jvm-macos:0.8.1-beta
project : > org.kodein.db:kodein-leveldb-jni-jvm:0.8.1-beta > org.kodein.db:kodein-leveldb-jni-jvm-windows:0.8.1-beta
> Cannot choose between the following variants of org.kodein.db:kodein-leveldb:0.8.1-beta:
- debugRuntimeElements-published
- jvmRuntimeElements-published
- releaseRuntimeElements-published
All of them match the consumer attributes:
- Variant 'debugRuntimeElements-published' capability org.kodein.db:kodein-leveldb:0.8.1-beta:
- Unmatched attributes:
- Provides com.android.build.api.attributes.BuildTypeAttr 'debug' but the consumer didn't ask for it
- Provides com.android.build.api.attributes.VariantAttr 'debug' but the consumer didn't ask for it
- Provides org.gradle.status 'release' but the consumer didn't ask for it
- Provides org.gradle.usage 'java-runtime' but the consumer didn't ask for it
- Provides org.jetbrains.kotlin.platform.type 'androidJvm' but the consumer didn't ask for it
- Variant 'jvmRuntimeElements-published' capability org.kodein.db:kodein-leveldb:0.8.1-beta:
- Unmatched attributes:
- Provides org.gradle.libraryelements 'jar' but the consumer didn't ask for it
- Provides org.gradle.status 'release' but the consumer didn't ask for it
- Provides org.gradle.usage 'java-runtime' but the consumer didn't ask for it
- Provides org.jetbrains.kotlin.platform.type 'jvm' but the consumer didn't ask for it
- Variant 'releaseRuntimeElements-published' capability org.kodein.db:kodein-leveldb:0.8.1-beta:
- Unmatched attributes:
- Provides com.android.build.api.attributes.BuildTypeAttr 'release' but the consumer didn't ask for it
- Provides com.android.build.api.attributes.VariantAttr 'release' but the consumer didn't ask for it
- Provides org.gradle.status 'release' but the consumer didn't ask for it
- Provides org.gradle.usage 'java-runtime' but the consumer didn't ask for it
- Provides org.jetbrains.kotlin.platform.type 'androidJvm' but the consumer didn't ask for it
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
buildscript {
ext.kotlin_version = '1.5.21'
repositories {
jcenter()
mavenCentral()
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
}
dependencies {
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.+', changing: true
classpath group: 'org.spongepowered', name: 'mixingradle', version: '0.7-SNAPSHOT'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
plugins {
id 'com.github.johnrengelman.shadow' version '7.1.0'
}
apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'kotlin'
apply plugin: 'org.spongepowered.mixin'
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
apply plugin: 'com.github.johnrengelman.shadow'
apply plugin: 'java'
version = "0.1.0-1.16.3"
group = "com.kyokoyama" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "joyflick"
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
mixin {
add sourceSets.main, "joyflick.refmap.json"
add sourceSets.main, "expmanager.refmap.json"
}
minecraft {
mappings channel: 'snapshot', version: '20201028-1.16.3'
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'debug'
arg "-mixin.config=expmanager.mixins.json"
arg "-mixin.config=joyflick.mixins.json"
mods {
joyflick {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'debug'
arg "-mixin.config=expmanager.mixins.json"
arg "-mixin.config=joyflick.mixins.json"
mods {
joyflick {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
property 'forge.logging.console.level', 'debug'
args '--mod', 'joyflick', '--all', '--output', file('src/generated/resources/')
mods {
joyflick {
source sourceSets.main
}
}
}
}
}
sourceSets.main.resources { srcDir 'src/generated/resources' }
repositories {
maven {
// location of the maven that hosts JEI files
name = "Progwml6 maven"
url = "https://dvs1.progwml6.com/files/maven/"
}
maven {
// location of a maven mirror for JEI files, as a fallback
name = "ModMaven"
url = "https://modmaven.k-4u.nl"
}
maven {
url = "https://www.cursemaven.com"
}
mavenCentral()
maven {
name = 'kotlinforforge'
url = 'https://thedarkcolour.github.io/KotlinForForge/'
}
}
allprojects {
repositories {
google()
maven { url = "https://jitpack.io" }
}
}
//configurations {
// shade
// shadow
//}
dependencies {
minecraft 'net.minecraftforge:forge:1.16.3-34.1.42'
// implementation fg.deobf("mezz.jei:jei-1.16.3:7.6.0.51")
runtimeOnly fg.deobf("curse.maven:controllable-317269:3335987")
compileOnly fg.deobf("curse.maven:controllable-317269:3335987")
// implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
runtimeOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
// implementation 'thedarkcolour:kotlinforforge:1.15.1'
runtimeOnly 'thedarkcolour:kotlinforforge:1.15.1'
compileOnly 'thedarkcolour:kotlinforforge:1.15.1'
// reflection
shadow "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
// shade "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
shadow "com.github.KaiseiYokoyama:JoyFlickMODRecord:v1.11"
// shade "com.github.KaiseiYokoyama:JoyFlickMODRecord:v1.11"
// kodein-db
shadow "org.kodein.db:kodein-db-jvm:0.8.1-beta"
shadow "org.kodein.db:kodein-db-serializer-kotlinx:0.8.1-beta"
shadow "org.kodein.db:kodein-leveldb-jni-jvm:0.8.1-beta"
// shade "org.kodein.db:kodein-db-jvm:0.8.1-beta"
// shade "org.kodein.db:kodein-db-serializer-kotlinx:0.8.1-beta"
// shade "org.kodein.db:kodein-leveldb-jni-jvm:0.8.1-beta"
shadow "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
shadow "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.2.1"
shadow "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2"
shadow "org.jsoup:jsoup:1.14.2"
shadow 'org.jetbrains.kotlinx:kotlinx-datetime:0.3.0'
// shade "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
// shade "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.2.1"
// shade "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2"
// shade "org.jsoup:jsoup:1.14.2"
// shade 'org.jetbrains.kotlinx:kotlinx-datetime:0.3.0'
testImplementation 'org.junit.jupiter:junit-jupiter:5.5.2'
}
jar {
manifest {
attributes([
"Specification-Title" : "JoyFlick",
"Specification-Vendor" : "Kaisei Yokoyama",
"Specification-Version" : "1",
"Implementation-Title" : project.name,
"Implementation-Version" : "${version}",
"Implementation-Vendor" : "Kaisei Yokoyama",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
"Signing-Fingerprint" : project.hasProperty('fingerprint') ? project.property('fingerprint') : 'unsigned',
"MixinConfigs" : "joyflick.mixins.json,expmanager.mixins.json"
])
}
}
shadowJar {
archiveClassifier.set('')
project.configurations.shadow.setCanBeResolved(true)
configurations = [project.configurations.shadow]
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
// https://qiita.com/MirrgieRiana/items/a006a0fbe21e30a2f7a2
reobf {
shadowJar {}
}
tasks.shadowJar.finalizedBy('reobfShadowJar')
artifacts {
archives shadowJar
}
test {
// JUnit platform を使う設定
useJUnitPlatform()
testLogging {
// テスト時の標準出力と標準エラー出力を表示する
showStandardStreams true
// イベントを出力する (TestLogEvent)
events 'started', 'skipped', 'passed', 'failed'
// 例外発生時の出力設定 (TestExceptionFormat)
exceptionFormat 'full'
}
}
//Properties keyStoreProperties = new Properties()
//File file = new File("C:\\dev\\keystore.properties")
//if (file.exists()) {
// InputStream ins = new FileInputStream(file)
// keyStoreProperties.load(ins)
// ins.close()
//}
compileKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}
compileTestKotlin {
kotlinOptions {
jvmTarget = "1.8"
}
}