小编x80*_*486的帖子

访问settings.gradle中存储在gradle.properties中的点属性

我有一个Gradle 6.0.1项目。(摘录build.gradle)看起来像:

\n\n
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\n
Run Code Online (Sandbox Code Playgroud)\n\n

我正在管理以下位置的所有插件版本settings.gradle

\n\n
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"\n
Run Code Online (Sandbox Code Playgroud)\n\n

...我通常将工件版本放在gradle.properties

\n\n
#\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)

groovy gradle

14
推荐指数
2
解决办法
5115
查看次数

在排序列表中查找最近/最近的值

我想知道是否有可能找到一个最接近的元素List的元素,是不是在那里.

例如,如果我们有值[1,3,6,7]并且我们正在寻找最接近4的元素,它应该返回3,因为3是数组中的最大数字,小于4.

我希望这是有道理的,因为英语不是我的母语.

java logic

12
推荐指数
3
解决办法
3万
查看次数

Maven - 如何为测试包创建源jar?

我有一个Maven项目my-work,它有两个源目录 src/test/javasrc/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)

java maven

11
推荐指数
2
解决办法
707
查看次数

findFirst 在流上&lt;可选&lt;T&gt;&gt;

假设您有一个流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)

java java-stream option-type

6
推荐指数
1
解决办法
3608
查看次数

根据 Spring Boot 中的 Accept-Language 检索语言环境

我有一个 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.propertiesmessages_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 …

java internationalization spring-boot

6
推荐指数
3
解决办法
1万
查看次数

无法使用 NestJS 注入 winston 的记录器实例

我正在使用 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)

node.js winston nestjs

6
推荐指数
2
解决办法
5642
查看次数

AsciiDoc"引用链接"(如在Markdown中)

参考样式链接非常有用,因为我可以通过名称来引用链接.例如,在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中模仿这个功能吗?我试过但到目前为止我找不到任何东西.

markdown asciidoc

5
推荐指数
1
解决办法
131
查看次数

Akka 集群 - 与远程系统的关联失败...原因:[关联失败]

我有一个带有两个演员的简单 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)

java akka akka-cluster

5
推荐指数
1
解决办法
5322
查看次数

Gradle — 新创建的守护进程的上下文与预期不同

我在 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)

java intellij-idea gradle nixos nixpkgs

5
推荐指数
2
解决办法
8222
查看次数

Gradle 多项目不会产生 Lombok 的优点

我在 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)

gradle lombok intellij-lombok-plugin

5
推荐指数
1
解决办法
2780
查看次数