对于多项目/多模块 Gradle 构建,我有一个非常基本的用例。我最终需要的结构并不比官方 Gradle 文档中提出的用于声明子项目之间的依赖关系更复杂。
在这里复制他们的文档,我们有这个项目结构:
.
??? buildSrc
? ...
??? api
? ??? src
? ? ???...
? ??? build.gradle
??? services
? ??? person-service
? ??? src
? ? ???...
? ??? build.gradle
??? shared
? ??? src
? ? ???...
? ??? build.gradle
??? settings.gradle
Run Code Online (Sandbox Code Playgroud)
这些构建文件:
// settings.gradle
rootProject.name = 'dependencies-java'
include 'api', 'shared', 'services:person-service'
// buildSrc/src/main/groovy/myproject.java-conventions.gradle
plugins {
id 'java'
}
group = 'com.example'
version = '1.0'
repositories {
mavenCentral()
}
dependencies { …
Run Code Online (Sandbox Code Playgroud) 在 IntelliJ 2020.1 和 2020.3 之间的某个时间,Git 窗口视图发生了变化。我了解当前视图的价值,并且我在 2020.3 之前就使用过它,但是旧的默认视图去哪儿了?与 HEAD 相比,如何查看我的所有本地更改?
我已经浏览了他们的文档,但没有任何帮助。他们的一些文档甚至似乎提到了我在 IDE 中根本没有看到的按钮和选项...
https://www.jetbrains.com/help/idea/viewing-changes-information.html#comparing_local_changes
并不是说我Preview Diff
在工具栏上有该按钮,但文档听起来这只是一个逐个文件的选项。需要明确的是,我希望该视图与 2020.1 中的视图相同,其中包含所有已更改文件的摘要,并且您可以单击每个文件来查看差异。
我正在使用 Keycloak 的 Java keycloak-admin-client
,我想为我的领域的客户端设置一些协议映射器。
Java API 公开此类来创建协议映射器,然后使用以下方法来设置配置选项:
ProtocolMapperRepresentation protocolMapperRep = new ProtocolMapperRepresentation();
protocolMapperRep.setConfig(Map.of("some.mapper.config.option", "mapper-value"));
Run Code Online (Sandbox Code Playgroud)
我查看了 javadoc 文档,不幸的是,它完全没用。:( 我没有看过rest-api文档,但我只是看了它,它没有做任何事情来枚举协议映射器表示的配置选项: https: //www.keycloak.org/docs-api /12.0/rest-api/index.html#_protocolmapperrepresentation
我在这里看到了另一个 StackOverflow 问题中的一些选项:Add protocol-mapper to keycloak using kcadm.sh
然而,必须有一个更好的地方来记录这些内容。
我试图弄清楚如何在 Java 中实际使用 argon2 哈希来处理密码。我肯定遗漏了一些东西,因为没有一个 API 返回哈希或盐的离散字段。我尝试过argon2 的 JVM 绑定以及spring-security + bouncy castle,两者都给了我一个字符串,但它还使用除哈希密码和盐之外的信息进行序列化。
public static void main(String[] args) {
final String rawPass = "badPassword";
// argon2-jvm
Argon2 argon2jvm = Argon2Factory.create(Argon2Factory.Argon2Types.ARGON2id, 16, 32);
String arg2JvmHash = argon2jvm.hash(10, 65536, 1, rawPass.getBytes(StandardCharsets.UTF_8));
System.out.println("argon2-jvm:");
System.out.println(arg2JvmHash);
System.out.println("\n\n");
// spring security + bouncy castle
Argon2PasswordEncoder arg2SpringSecurity = new Argon2PasswordEncoder(16, 32, 1, 65536, 10);
String springBouncyHash = arg2SpringSecurity.encode(rawPass);
System.out.println("spring security + bouncy castle:");
System.out.println(springBouncyHash);
System.out.println("\n\n");
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
argon2-jvm:
$argon2id$v=19$m=65536,t=10,p=1$BeHo0SdgM6vt5risz+yuLg$dOBFlfeoPPGCk/OLCGJ9sRhyPl0zMqMAUZvkltFWxnA
spring security + bouncy …
Run Code Online (Sandbox Code Playgroud) 我最近使用了我的博览会版本,我的应用程序现在将不再工作。在对包进行更改之前,我什至尝试将应用程序的代码库恢复到之前的提交。我没有收到任何错误,而是应用程序“启动”并卡在默认的博览会启动屏幕上。
更新:最小可重现示例:https ://github.com/atb-brown/expo-issue
更新:新启动的应用程序似乎可以工作:https ://github.com/atb-brown/expo-issue/tree/expo-init
$ expo --version
5.0.3
Run Code Online (Sandbox Code Playgroud)
$ expo --version
5.0.3
Run Code Online (Sandbox Code Playgroud)
我的 Android 上的 Expo Go 应用程序版本为 2.23.2。
这是我的应用程序卡住的屏幕:
我在控制台中没有看到任何错误。这里可能出了什么问题?
我使用 IntelliJ2021.3.2
和 git 2.35.windows.2
。
几年前,当我在 IntelliJ 终端(配置为使用 Git Bash)中输入内容时,当我在 vim 中输入完提交描述时,我会点击esc
,然后我就可以执行 vim 命令。
最近,点击esc
IntelliJ 终端现在会使 IntelliJ 终端窗口失去焦点(因为缺乏更好的术语),因此它不再让我执行 vim 命令。然后我不得不使用ctrl + c
而不是esc
.
现在,对于我上面列出的版本,我什至无法使用ctrl + c
. esc
我还是用不了 那么,如果我无法使用ctrl + c
或esc
为了能够执行 vim 命令,我该如何停止在 vim 中写入呢:wq
?
我有一个 TypeScript 函数,它返回一个 React Native View
。
import React from "react";
import JSX, {View} from "react-native";
class DummyClass {
static getView() {
return (
<View style={{flex: 1}}/>
);
}
}
export default DummyClass;
Run Code Online (Sandbox Code Playgroud)
我以这种方式调用这个函数:
import JSX from "react-native";
import DummyClass from "./util/dummy";
const DummyWrapper = () => {
return (DummyClass.getView());
};
export default DummyWrapper;
Run Code Online (Sandbox Code Playgroud)
当我跑步时eslint
,我收到警告。
5:5 警告 函数 @typescript-eslint/explicit-module-boundary-types 缺少返回类型
所以,我需要归还一些东西。JSX.Element
看起来很合理,但这似乎不起作用。其一,当我尝试返回 a 时JSX.Element
,VSCode 无法解析它并假装它是any
。而且,它会导致调用该函数的其他地方出现错误。
所以,这样做:
static getView() : JSX.Element {
和const …
java ×3
react-native ×2
argon2-ffi ×1
eslint ×1
expo ×1
git ×1
gradle ×1
groovy ×1
jsx ×1
keycloak ×1
reactjs ×1
security ×1
typescript ×1
yarnpkg ×1