小编Ala*_*Dea的帖子

如何展平使用I/O的嵌套For Comprehension?

我无法将嵌套的For Generator扁平化为单个For Generator.

我创建了MapSerializer来保存和加载地图.

MapSerializer.scala列表:

import java.io.{ObjectInputStream, ObjectOutputStream}

object MapSerializer {
  def loadMap(in: ObjectInputStream): Map[String, IndexedSeq[Int]] =
    (for (_ <- 1 to in.readInt()) yield {
      val key = in.readUTF()
      for (_ <- 1 to in.readInt()) yield {
        val value = in.readInt()
        (key, value)
      }
    }).flatten.groupBy(_ _1).mapValues(_ map(_ _2))

  def saveMap(out: ObjectOutputStream, map: Map[String, Seq[Int]]) {
    out.writeInt(map size)
    for ((key, values) <- map) {
      out.writeUTF(key)
      out.writeInt(values size)
      values.foreach(out.writeInt(_))
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

修改loadMap以在生成器中分配密钥会导致它失败:

def loadMap(in: …
Run Code Online (Sandbox Code Playgroud)

for-loop scala scala-collections

2
推荐指数
1
解决办法
2699
查看次数

如何将 Gradle 插件发布到 Artifactory?

我正在使用这个示例 Gradle 插件项目:https : //github.com/AlainODea/gradle-com.example.hello-plugin

当我运行./gradlew publishToMavenLocal 时,它会在 M2_HOME 中创建这些文件:

  1. com/hello/com.example.hello.gradle.plugin/maven-metadata-local.xml
  2. com/hello/com.example.hello.gradle.plugin/0.1-SNAPSHOT/com.example.hello.gradle.plugin-0.1-SNAPSHOT.pom
  3. com/hello/com.example.hello.gradle.plugin/0.1-SNAPSHOT/maven-metadata-local.xml
  4. com/hello/gradle-com.example.hello-plugin/maven-metadata-local.xml
  5. com/hello/gradle-com.example.hello-plugin/0.1-SNAPSHOT/gradle-com.example.hello-plugin-0.1-SNAPSHOT.jar
  6. com/hello/gradle-com.example.hello-plugin/0.1-SNAPSHOT/gradle-com.example.hello-plugin-0.1-SNAPSHOT.pom
  7. com/hello/gradle-com.example.hello-plugin/0.1-SNAPSHOT/maven-metadata-local.xml

当我运行./gradlew artifactoryPublish 时,它会记录:

Deploying artifact: https://artifactory.example.com/artifactory/libs-release-local-maven/com/example/hello/gradle-com.example.hello-plugin/0.1-SNAPSHOT/gradle-com.example.hello-plugin-0.1-SNAPSHOT.jar
Deploying artifact: https://artifactory.example.com/artifactory/libs-release-local-maven/com/example/hello/gradle-com.example.hello-plugin/0.1-SNAPSHOT/gradle-com.example.hello-plugin-0.1-SNAPSHOT.pom
Deploying build descriptor to: https://artifactory.example.com/artifactory/api/build
Build successfully deployed. Browse it in Artifactory under https://artifactory.example.com/artifactory/webapp/builds/gradle-com.example.hello-plugin/1234567890123
Run Code Online (Sandbox Code Playgroud)

尝试从另一个 build.gradle 加载插件:

plugins {
    id 'java'
    id 'com.example.hello' version '0.1-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)

使用 settings.gradle:

pluginManagement {
    repositories {
        maven {
            url 'https://artifactory.example.com/artifactory/libs-release-local-maven/'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

导致此错误:

Plugin [id: 'com.example', version: '0.1-SNAPSHOT'] was not found in …
Run Code Online (Sandbox Code Playgroud)

artifactory gradle kotlin gradle-plugin

2
推荐指数
1
解决办法
3715
查看次数

为什么我在申请后无法连接到我的 ec2 实例?

我已经将我的第一个 terraform 脚本放在一起,用于在 AWS 上进行资产配置。但是,我无法连接到公有子网中的 EC2 实例

我可以看到所有预期的资源都已创建:子网/实例/路由表/网关等

我已经排除了 provider.tf,因为它包含敏感的秘密。

我的地区是 ap-south-1。

resource "aws_vpc" "vpc1" {
  cidr_block = "10.20.0.0/16"
  tags = {
    name = "tf_vpc"
  }
}

# subnets below
resource "aws_subnet" "subnet_public"{
  vpc_id  = "${aws_vpc.vpc1.id}"
  cidr_block = "10.20.10.0/24"
  availability_zone = "ap-south-1a"

  map_public_ip_on_launch = true
}

resource "aws_subnet" "subnet_private"{
  vpc_id  = "${aws_vpc.vpc1.id}"
  cidr_block = "10.20.20.0/24"
  availability_zone = "ap-south-1a"
}

resource "aws_security_group" "sg-web" {
  name ="allow80"
  description="allows traffic on port 80"
  vpc_id ="${aws_vpc.vpc1.id}"

  ingress{
    from_port = 80
    to_port   = 80
    protocol …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform devops

2
推荐指数
1
解决办法
52
查看次数

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1

我正在学习Java,我不知道这里有什么问题.为什么会发生这种错误?我没有看到任何错误,直到我在第二个"for"循环之前写入"count = 0"行时才实际工作.

这是错误:java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:1

这就是错误发生的地方:

if(mots.get(j).startsWith(searchPhrase.substring(0,1))){
Run Code Online (Sandbox Code Playgroud)

这是整个代码:

import java.util.*;

public class Test {
    public static void main(String[] args) {
        List<String> mots = new ArrayList<>();
        List<String> saida = new ArrayList<>();
        mots.add("un");
        mots.add("deux");
        mots.add("trois");
        String searchPhrase = "aaasdeuxctsundesle";
        int count = 0;
        int countAnula = 0;
        int azul = 0;
        String anula = "-"; //Tem que fazer cast para char depois
        String frase = searchPhrase;
        for (int i = 0; i < frase.length(); i++) {
            count = 0;
            for (int j = …
Run Code Online (Sandbox Code Playgroud)

java exception

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

如何在Ubuntu上运行Java作为服务?

所以2天后(是的,我是一个完整的新手,当涉及到服务器)试图让这个工作我放弃,转向SO寻求帮助:)

我想在启动时启动我的java应用程序,登录到日志文件.而已 :)

start on runlevel [2345]
stop on runlevel [!2345]


#Respawn the process if it crashes
#If it respawns more than 10 times in 5 seconds stop
respawn
respawn limit 10 5

expect fork

script
    cd /home/ubuntu/admin/
    mvn spring-boot:run > /var/log/upstart/admin.log 2>&1
end script
Run Code Online (Sandbox Code Playgroud)

运行"sudo start admin"工作,我在控制台中得到"管理员启动/运行"..没有创建日志,java应用程序没有启动..?

我错过了什么?

如何在Ubuntu上运行Java作为服务?

java linux ubuntu service upstart

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

带引号和不带引号的变量样式有什么区别?

terraform 中的以下 2 种样式之间有什么区别,它们相同吗?

vpc_id      = aws_vpc.default.id
Run Code Online (Sandbox Code Playgroud)

对比

vpc_id      = "${aws_vpc.default.id}"
Run Code Online (Sandbox Code Playgroud)

terraform

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