我使用方法defineClass()从ClassLoader字节数组中定义一个类。我使用反射获取此方法:
ClassLoader.class.getDeclaredMethod(
"defineClass", String.class, byte[].class, int.class, int.class);
Run Code Online (Sandbox Code Playgroud)
Java10 抱怨defineClass.
我应该用什么代替?
有没有用于管理git分支,隐藏提交的git UI?所有当前可用的git客户端都显示大型日志报告,所有提交都在分支机构中,因此我可能会失去一个不在屏幕上的分支的焦点,因为最近发生了许多提交.
我希望能够"最小化"或"崩溃"所有提交为单点(更大的点 - 更多提交被折叠)或线(更粗的线 - 更多提交)并且仅可视化可以被操纵的分支.所以,再次,它就像SmartGit日志视图,但是对于分支的折叠提交,所以我可以快速看到git分支树.
我使用Vagrant在本地机器上启动Kubernetes master和minion。我可以为kubernete pod创建一个json文件,在其中可以启动几个公共容器。
但是,一个Docker容器是本地容器,ontop on java:8-jdk,使用DockerFile配置。
如何在kubernetes json容器中引用此本地Docker容器,以便kubernets可以运行它?
换句话说,Kubernetes是否支持docker build;)
我有一些使用的异步运行流程CompletableFuture,例如:
foo(...)
.thenAccept(aaa -> {
if (aaa == null) {
break!
}
else {
...
}
})
.thenApply(aaa -> {
...
})
.thenApply(...
Run Code Online (Sandbox Code Playgroud)
因此,如果我的foo()返回null(将来)我需要很快打破,否则,流程继续.
现在我必须null在每个未来的街区检查所有方式; 但那很难看.
这有可能CompletableFuture吗?
有了CompletableFuture你可以定义你的异步任务,被执行的一个接一个的流动.例如,您可以说:
做A,当A完成时,做B,然后做C ......
我的问题是打破这种流动并说:
做A,但如果结果为null break; 否则做B,然后做C ......
这就是我所说的"打破流动".
我正在尝试从命令行运行 IntelliJ 代码格式化程序。
我知道可以从 CLI 运行检查,但是,他们没有提供相同的源格式(蹩脚!)。
现在,我开始使用 IntelliJ 的 CE 版本。源代码在github上。
然而,由于代码库并不小,我在封装格式化程序时遇到了问题。
有没有人可以为我指出正确的方向并展示从哪些课程开始?
我有 5 个相互依赖的项目。因此,我创建了新的“虚拟”项目,它是这 5 个项目的复合构建,并具有以下任务:
task build {
dependsOn gradle.includedBuilds*.task(':build')
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令运行复合中所有项目的构建gradlew build:或者如何以其他方式实现这一点?
我现在如何通过跳过-x test复合构建的测试执行?
GradleArtifactRepository实现所做的所有事情都是提供用于获取工件的源。例如,它可以是 plain 结构、maven repo 等。我知道我可以使用一些自定义源构建自己的存储库实现。
但是,我需要一些不同的东西:“挂钩”工件解析和获取内部。例如,当 Gradle 检查是否在我的foo:bar:1.0存储库实现内部时,我希望能够捕获此请求并从我想要的任何地方返回工件。(显然,它不是静态位置,否则现有存储库实现之一就足够了)。
换句话说,当 gradle 要求时,foo:bar:1.0我想控制工件 jar 的返回 - 拥有一个自定义的依赖关系解析器。
有一个老问题:https ://issues.gradle.org/browse/GRADLE-1805要求这样做。
Gradle 可以做到这一点吗?
我sun.misc.Unsafe在我的Java8代码库中使用.这不适用于Java9.
我想修复Java9,但使用与Java8相同的代码库.如果我放module-info.java,它将无法工作,因为我的代码库是Java8.
该怎么办?
JaCoCo 和MultiRelease JAR 文件存在问题。由于两个地方存在相同的类名,JaCoCo 抱怨道:
Caused by: java.lang.IllegalStateException: Can't add different class with same name: jodd/core/JavaBridge
at org.jacoco.core.analysis.CoverageBuilder.visitCoverage(CoverageBuilder.java:107)
at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:96)
Run Code Online (Sandbox Code Playgroud)
我们如何告诉 JaCoCo(在 Gradle 中)跳过 META-INF 路径中的类?或者根据 JVM 版本表现得像它应该的那样(使用正确的类并忽略其他版本)?
我在 SpringBoot 中有一个测试,应该以非常相同的方式检查多个 bean:
@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class EndpointsTest implements ApplicationContextAware {
@MockBean
ComponentA componentA;
@MockBean
ComponentB componentB;
...
Run Code Online (Sandbox Code Playgroud)
由于我不想为每个组件编写新的虚拟测试,因此我想获取所有 bean(因此使用ApplicationContextAware),然后对每个此类 bean 运行测试。
当然,这些豆子必须被嘲笑。
有没有办法像MockBean注释一样手动模拟 bean 并将其替换为 Spring 上下文?我还想删除所有组件的显式声明(数量不小),只是为了模拟的目的。
编辑:我想避免手动编写测试类中的所有组件。组件 bean 是按照约定命名的,因此我想获取所有它们,应用模拟并运行测试。我们有 100 多个组件。
java ×5
gradle ×2
java-8 ×2
java-9 ×2
artifact ×1
docker ×1
future ×1
git ×1
jacoco ×1
java-10 ×1
java-platform-module-system ×1
kubernetes ×1
mockito ×1
module-info ×1
reflection ×1
spring ×1
spring-boot ×1
testing ×1
unsafe ×1