Файл сборки Gradle:
buildscript {
ext.kotlin_version = '1.2.41'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
group 'com.anivive'
version '0.1'
apply plugin: 'kotlin'
sourceSets {
main.java.srcDirs += 'src/main/kotlin/'
test.java.srcDirs += 'src/test/kotlin/'
}
repositories {
mavenLocal()
maven {
url "https://packagecloud.io/anivive/anivive/maven2"
}
mavenCentral()
}
dependencies {
compile 'anivive:Import_Utils:1.2.44'
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
jar {
baseName = 'XMLModelBuilder'
version = '0.1'
manifest {
attributes 'Main-Class': 'com.anivive.Main'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
Структура файла:
src
- main
- kotlin
- com
- anivive
- Main.kt
Main.kt:
package com.anivive
import com.anivive.util.ExampleClass
object Main {
@JvmStatic
fun main(args: Array<String>) {
ExampleClass.exampleMethod()
}
}
Итак, я пытаюсь собратьисполняемый файл JAR, который будет вызывать один метод из класса в зависимости 'anivive: Import_Utils: 1.2.44'.
Если я удаляю зависимость и изменяю свой основной метод на println("Test")
, jarбудет нормально работать через java -jar build/libs/jarFile.jar
и будет выводить Test
.
Однако, с учетом зависимости и при попытке вызвать из нее функцию, я получу Error: Could not find or load main class com.anivive.Main
всякий раз, когда пытаюсь запуститьJar файл.Я подозреваю, что это как-то связано с размещением jar-файла на packagecloud, но я удивлен, что это проблема, учитывая, что я могу нормально запустить программу из IntelliJ.
Что дает?