我有一个Gradle 6.0.1项目。(摘录build.gradle)看起来像:
plugins {\n id "application"\n id "com.github.edeandrea.xjc-generation"\n id "eclipse"\n id "idea"\n id "java"\n id "org.springframework.boot"\n}\n\n...\n\ndependencies {\n implementation platform("org.springframework.boot:spring-boot-dependencies:${property("spring-boot.version")}")\n\n // ...more stuff here\n}\n\n// ...more stuff here\nRun Code Online (Sandbox Code Playgroud)\n\n我正在管理以下位置的所有插件版本settings.gradle:
pluginManagement {\n plugins {\n id "application"\n id "com.github.edeandrea.xjc-generation" version "1.0"\n id "eclipse"\n id "idea"\n id "java"\n id "org.springframework.boot" version "${spring-boot.version}"\n }\n}\n\nrootProject.name = "spring-core"\nRun Code Online (Sandbox Code Playgroud)\n\n...我通常将工件版本放在gradle.properties:
#\n# Dependency Versions\noracle.version = 18.3.0.0\nspring-boot.version = 2.2.1.RELEASE\n\n#\n# Gradle Settings\norg.gradle.configureondemand = false\norg.gradle.daemon = false\n\n#\n# System Settings\nsystemProp.file.encoding = …Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能找到一个最接近的元素List的元素,是不是在那里.
例如,如果我们有值[1,3,6,7]并且我们正在寻找最接近4的元素,它应该返回3,因为3是数组中的最大数字,小于4.
我希望这是有道理的,因为英语不是我的母语.
我有一个Maven项目my-work,它有两个源目录
src/test/java和src/main/java.我需要将它们转换为一个JAR文件,以便其他项目可以使用它们,但我最终将它们转换为两个单独的JAR.现在,我需要能够为这两个JAR中的每一个创建源JAR.
我首先通过将其添加到my来创建两个JAR main/和test/目录pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后,我尝试了这里的说明来制作源JAR.问题是它只创建一个源JAR,即my-work-0.0.1-SNAPSHOT-sources.jar.但是,我希望它也能创造my-work-0.0.1-SNAPSHOT-tests-sources.jar.我怎么做?
这是完整的POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.myproject</groupId>
<artifactId>my-work</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!--etc-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<name>mywork</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> …Run Code Online (Sandbox Code Playgroud) 假设您有一个流Optional<T>,您想要触发一个Consumer<T>流(如果存在)。
处理这个问题最优雅的方法是什么?
我可以通过过滤Optional::isPresent和映射来进行管理Optional::isGet,但这看起来很“hacky”并且不符合以下精神Optional:
Stream.of(a, b, c, d)
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst()
.ifPresent(s -> System.out.println("This was cumbersome: " + s));
Run Code Online (Sandbox Code Playgroud) 我有一个 Spring Boot ( 2.1.3.RELEASE) 应用程序,它使用 Jersey 来定义(RESTful)端点。我正在尝试根据用户代理发送的语言环境读取和传播一些消息。
我已经配置了这些 bean:
@Bean
public LocaleResolver localeResolver() {
final AcceptHeaderLocaleResolver resolver = new AcceptHeaderLocaleResolver();
resolver.setSupportedLocales(Arrays.asList(Locale.GERMANY, Locale.US));
resolver.setDefaultLocale(Locale.ENGLISH);
return resolver;
}
@Bean
public MessageSource messageSource() { // Not sure if this is needed
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
messageSource.setBasenames("classpath:/messages");
messageSource.setUseCodeAsDefaultMessage(true);
messageSource.setCacheSeconds(5);
return messageSource;
}
Run Code Online (Sandbox Code Playgroud)
...还有包(内部../src/main/resources/),如:(messages.properties回退)messages_en_US.properties、messages_de_DE.properties、 等。
现在,挑战是我不确定如何“读取”用户代理发送的语言环境,以便适当地读取包中的消息。我正在注入一个MessageSource ms,并以编程方式读取消息,例如:
final Locale locale = ???
ms.getMessage("message.duplicate-token", null, locale);
Run Code Online (Sandbox Code Playgroud)
有什么线索吗?
我试过了,
LocaleContextHolder.getLocale()但总是这样en_US …
我正在使用 NestJS7.0.7和 Winston 3.2.1(带有 nest-winston 1.3.3)。
我正在尝试将 Winston 集成到 NestJS 中,但到目前为止,我无法将记录器实例(以实际记录任何内容)注入任何控制器/服务。
由于我想在整个应用程序和引导期间使用 Winston ,我使用该方法 作为主要的 Nest 记录器:
// main.ts
import { NestFactory } from "@nestjs/core";
import { WinstonModule } from "nest-winston";
import { format, transports } from "winston";
import { AppModule } from "./app.module";
async function bootstrap(): Promise<void> {
const app = await NestFactory.create(AppModule, {
logger: WinstonModule.createLogger({
exitOnError: false,
format: format.combine(format.colorize(), format.timestamp(), format.printf(msg => {
return `${msg.timestamp} [${msg.level}] - ${msg.message}`;
})),
transports: …Run Code Online (Sandbox Code Playgroud) 参考样式链接非常有用,因为我可以通过名称来引用链接.例如,在Markdown我习惯做类似的事情:
The [Web site][tag-web-site] references...blah.
[tag-web-site]: https://web-site-url.tld
Run Code Online (Sandbox Code Playgroud)
...它将根据tag-web-site参考创建一个链接.
有什么办法可以在AsciiDoc中模仿这个功能吗?我试过但到目前为止我找不到任何东西.
我有一个带有两个演员的简单 POC:
public final class Task1Actor extends AbstractLoggingActor {
public Task1Actor() {
final UnitPFBuilder<Object> builder = ReceiveBuilder.create()
.matchAny(message -> {
log().warning("Received unknown message: {}", message);
unhandled(message);
});
receive(builder.build());
}
@Override
public void preStart() throws Exception {
IntStream.range(0, 5).forEach(i -> {
final ActorRef actor = context().actorOf(Props.create(Task2Actor.class));
actor.tell(RandomStringUtils.randomAlphabetic(10), self());
});
}
}
Run Code Online (Sandbox Code Playgroud)
public final class Task2Actor extends AbstractLoggingActor {
public Task2Actor() {
final UnitPFBuilder<Object> builder = ReceiveBuilder.create()
.match(String.class, this::process)
.matchAny(message -> {
log().warning("Received unknown message: {}", message);
unhandled(message);
});
receive(builder.build());
}
private …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 中通过Nix安装了 OpenJDK ( Linux uplink 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux)。
gorre@uplink:~$ java -version
openjdk version "1.8.0_172"
OpenJDK Runtime Environment (build 1.8.0_172-02)
OpenJDK 64-Bit Server VM (build 25.172-b02, mixed mode)
gorre@uplink:~$ which java
/home/gorre/.nix-profile/bin/java
gorre@uplink:/nix/store/f9053w1lfrkhgqfpr6l82ssxmjpsni1j-openjdk-8u172b02$ ll
total 24K
dr-xr-xr-x 3 gorre 4.0K Dec 31 1969 share/
dr-xr-xr-x 2 gorre 4.0K Dec 31 1969 nix-support/
dr-xr-xr-x 3 gorre 4.0K Dec 31 1969 lib/
lrwxrwxrwx 1 gorre 80 Dec 31 …Run Code Online (Sandbox Code Playgroud) 我在 Gradle 中有一个多项目。该build.gradle脚本如下所示:
buildscript {
repositories {
jcenter()
mavenCentral()
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "com.github.jengelman.gradle.plugins:shadow:2.0.4"
classpath "io.franzbecker:gradle-lombok:1.14"
}
}
allprojects {
//apply plugin: "base"
}
subprojects {
apply plugin: "com.github.johnrengelman.plugin-shadow"
apply plugin: "idea"
apply plugin: "java"
apply plugin: "io.franzbecker.gradle-lombok"
group = "io.shido"
version = "0.1.0-SNAPSHOT"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
repositories {
jcenter()
mavenCentral()
}
dependencies {
// [start] Research
//compileOnly "org.projectlombok:lombok:1.18.2"
// [end] Research
testCompile "nl.jqno.equalsverifier:equalsverifier:2.4.5"
testCompile "org.junit.jupiter:junit-jupiter-api:$junit_version"
testImplementation "org.junit.jupiter:junit-jupiter-params:$junit_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version" …Run Code Online (Sandbox Code Playgroud) java ×6
gradle ×3
akka ×1
akka-cluster ×1
asciidoc ×1
groovy ×1
java-stream ×1
logic ×1
lombok ×1
markdown ×1
maven ×1
nestjs ×1
nixos ×1
nixpkgs ×1
node.js ×1
option-type ×1
spring-boot ×1
winston ×1