ResolutionException with Hibernate and JavaFx

戏子无情 提交于 2019-12-23 05:04:08

问题


Im having some issue and I had no luck figuring it out how to fix it.

I have a JavaFx Project which has Hibernate and Proguard. But whenever I try to run the task 'runProguard' fails with java.lang.module.ResolutionException.

What's puzzling me is the fact that my project doesnt use modules. Is there anyway to fix this?

Task :runProguard FAILED Task ':runProguard' is not up-to-date because: Task has not declared any outputs despite executing actions. Starting process 'command ... Successfully started process 'command 'C:\Program Files\Java\openjdk-11_windows-x64_bin\bin\java.exe'' Error occurred during initialization of boot layer java.lang.module.ResolutionException: Modules java.activation and activation export package javax.activation to module java.transaction :runProguard (Thread[Daemon worker Thread 6,5,main]) completed. Took 1.094 secs.

buildscript {
   repositories {
      jcenter()
      mavenCentral()
   }
   dependencies {
      classpath 'net.sf.proguard:proguard-gradle:6.2.0'
   }
}

plugins {
   id 'java'
   id 'application'
   id 'org.openjfx.javafxplugin' version '0.0.8'
   id 'org.beryx.runtime' version '1.7.1'

}


dependencies {
   compile "org.controlsfx:controlsfx:11.0.0"
   compile "eu.hansolo:tilesfx:11.13"
   compile "com.jfoenix:jfoenix:9.0.9"
   compile "org.apache.httpcomponents:httpclient:4.5.9"
   compile "org.json:json:20180813"
   compile "mysql:mysql-connector-java:8.0.17"
   compile "org.jasypt:jasypt:1.9.3"
   compile "com.sun.mail:javax.mail:1.6.2"
   compile "commons-validator:commons-validator:1.6"

   // https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0
   compile "org.hibernate:hibernate-c3p0:5.4.7.Final"

   // https://mvnrepository.com/artifact/org.hibernate/hibernate-envers
   compile 'org.hibernate:hibernate-envers:5.4.8.Final'


   // https://mvnrepository.com/artifact/de.jensd/fontawesomefx-commons
   runtime group: 'de.jensd', name: 'fontawesomefx-commons', version: '11.0'

   // https://mvnrepository.com/artifact/de.jensd/fontawesomefx-fontawesome
   compile group: 'de.jensd', name: 'fontawesomefx-fontawesome', version: '4.7.0-9.1.2'

}

repositories {
   jcenter()
   mavenCentral()
}

javafx {
   version = "13"
   modules = ['javafx.controls', 'javafx.graphics', 'javafx.fxml']
}

mainClassName = 'Main'

runtime {
   options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']

   jpackage {
      jpackageHome = 'C:/Program Files/Java/openjdk-14-jpackage+1-49_windows-x64_bin/'

      if (org.gradle.internal.os.OperatingSystem.current().windows) {
         installerType = 'msi'
         imageOptions = []
         installerOptions = ['--win-per-user-install',
                             '--win-dir-chooser',
                             '--win-menu',
                             '--win-shortcut',
                             '--verbose',
                             '--description', 'Test of proguard with jPackage',
                             '--name', 'Test-ProguardJPackage',
                             '--vendor', 'DoesItMatter']
      }
   }
}


jar {
   dependsOn 'cleanAfterProguard'
   manifest {
      attributes(
         'Main-Class': 'org.openjfx.Launcher'
      )
   }
   from zipTree("${buildDir}/proguard/output.jar")
}

task cleanClasses(type: Delete) {
   delete "${buildDir}/classes/java/main"
   delete "${buildDir}/resources/java/main"
}

classes.dependsOn(cleanClasses)

// 2.2 Add proguard task
task proguard(type: proguard.gradle.ProGuardTask, dependsOn: classes) {
   injars project.sourceSets.main.output
   outjars "${buildDir}/proguard/output.jar"

   libraryjars project.sourceSets.main.compileClasspath

   configuration 'proguard.conf'
}

// 2.3 Clean after proguard task
task cleanAfterProguard(type: Delete, dependsOn: proguard) {
   delete "${buildDir}/classes/java/main"
   delete "${buildDir}/resources/java/main"
}

// 2.4 Extract output jar to buildDir
task unpackProguardOutput(type: Copy, dependsOn: cleanAfterProguard) {
   from zipTree("${buildDir}/proguard/output.jar")
   into file("${buildDir}/classes/java/main")
}


// 3. Create a task to run the app with the proguarded buildDir
task runProguard(type: JavaExec, dependsOn: unpackProguardOutput) {
   classpath = sourceSets.main.runtimeClasspath
   jvmArgs = ['--module-path', classpath.asPath,
              '--add-modules', 'javafx.controls,javafx.fxml']
   main = 'Main' // <-- this name will depend on the proguard result
}


jar.dependsOn(unpackProguardOutput)

This is the repo: https://github.com/KenobySky/hellofx

来源:https://stackoverflow.com/questions/58768138/resolutionexception-with-hibernate-and-javafx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!