我正在嘗試做一些有趣的 Java 專案,以更好地編碼。目前,我正在嘗試使用 JavaFX 和 Gradle 做一個離線的本地密碼管理器。
為了安全起見,我想要一種方法來散列密碼,然后將其存盤在檔案中。以前,我在一個 Android 應用程式中使用了谷歌的 Guava 庫,因為它有一些很好的哈希能力,所以我想我也會在這個專案中使用它。不幸的是,我無法訪問任何 Guava 的 API/物件。
這是我的settings.gradle檔案
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.10'
id 'org.beryx.jlink' version '2.24.1'
}
group 'me.tisleo'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
google()
}
ext {
junitVersion = '5.8.1'
}
sourceCompatibility = '17'
targetCompatibility = '17'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
application {
mainModule = 'me.tisleo.jpasswordmanager'
mainClass = 'me.tisleo.jpasswordmanager.JPasswordManager'
}
javafx {
version = '18-ea 6'
modules = ['javafx.controls', 'javafx.fxml']
}
dependencies {
implementation('org.controlsfx:controlsfx:11.1.0')
implementation('org.kordamp.bootstrapfx:bootstrapfx-core:0.4.0')
implementation("com.google.guava:guava:31.1-jre")
testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
}
test {
useJUnitPlatform()
}
jlink {
imageZip = project.file("${buildDir}/distributions/app-${javafx.platform.classifier}.zip")
options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
launcher {
name = 'app'
}
}
jlinkZip {
group = 'distribution'
}
番石榴檔案只是說要將實作添加implementation("com.google.guava:guava:31.1-jre")到我的settings.gradle檔案中,所以我做到了。每當我嘗試使用該庫時,例如使用Hashing類似于 的類Hashing.sha256().hashString(myString, StandardCharsets.UTF_8),IntelliJ 都會說“無法決議符號'哈希'”。
我不確定我做錯了什么。我確保重新加載 Gradle,甚至嘗試手動將 Guava 檔案添加到我的專案結構中。
uj5u.com熱心網友回復:
您有模塊化專案,因此您需要在module-info.java檔案中包含以下行以訪問 guava API:
requires com.google.common;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498146.html
