小编eka*_*aqu的帖子

在Golang中,如何将切片转换为数组

我是Go的新手并试图编写一个读取RPM文件的应用程序.每个块的开头都有一个Magic char [4]byte.

这是我的结构

type Lead struct {
  Magic        [4]byte
  Major, Minor byte
  Type         uint16
  Arch         uint16
  Name         string
  OS           uint16
  SigType      uint16
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行以下操作:

lead := Lead{}
lead.Magic = buffer[0:4]
Run Code Online (Sandbox Code Playgroud)

我在网上搜索,不知道如何从切片到数组(不复制).我可以随时制作魔法[]byte(甚至是魔法uint64),但我更好奇的是[]byte,[4]byte如果需要,我将如何从类型转到?

go

26
推荐指数
4
解决办法
2万
查看次数

在durning deploy中覆盖maven发布存储库

我正在开发一个开源库,并希望将发布内容发送到内部工件服务器.我一直在使用maven distributionManagement和overriding altDeploymentRepository指向内部服务器(因此它永远不会在pom中).我这样做很好,deploy:deploy但是当我使用maven release插件时,这似乎被忽略了.

mvn clean -DaltDeploymentRepository=central::default::internalhost deploy ## works
mvn clean -DaltDeploymentRepository=central::default::internalhost release:perform ## fails, doesn't pick up this setting
Run Code Online (Sandbox Code Playgroud)

当发布插件运行部署时,如何通过命令行覆盖存储库?

plugins release maven

15
推荐指数
3
解决办法
7154
查看次数

使用嵌套扩展对象编写gradle插件

我正在使用与Asgard(来自netflix)集成的gradle插件(我不知道groovy,刚开始使用gradle).我希望我的扩展对象看起来像这样:

asgard {
  url = "http://asgard"
  regions {
    "us-east-1" {
      autoScaling {
        {
          devPhase = "test"
          min = 3
          max = 6
          availabilityZones = ["us-east-1a", "us-east-1b", "us-east-1c"]
          ami = "Base AMI 2013-07-11"
          instanceType = "m3.xlarge"
          securityGroups = ["base", "test-application"]
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

或者接近那个.我已经能够通过使autoScaling成为一个List来接近这个,但是当我尝试从该类获取属性时,它似乎返回一个动态属性,而不是值.以下是入门插件:

import org.gradle.internal.reflect.Instantiator

class AsgardPlugin implements Plugin<Project> {
  void apply(Project project) {
    project.extensions.create("asgard", AsgardPluginExtension, project)
    project.asgard.extensions.regions = project.container(AsgardRegion) {String name ->
      AsgardRegion region = project.gradle.services.get(Instantiator).newInstance(AsgardRegion, name)
      assert region instanceof ExtensionAware

      region.extensions.add("autoScaling", project.container(AsgardAutoScaling))

      return region
    }


    project.task('displayConfigs') …
Run Code Online (Sandbox Code Playgroud)

plugins gradle

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

Scala隐式与隐式参数相对

我是Scala的新手,当我查看不同的项目时,我看到两种处理隐式参数的样式

scala]]>def sum[A](xs:List[A])(implicit m:Monoid[A]): A = xs.foldLeft(m.mzero)(m.mappend)
sum:[A](xs:List[A])(implicit m:Monoid[A])A
Run Code Online (Sandbox Code Playgroud)

scala]]>def sum[A:Monoid](xs:List[A]): A ={
     val m = implicitly[Monoid[A]]
     xs.foldLeft(m.mzero)(m.mappend)
   }
sum:[A](xs:List[A])(implicit evidence$1:Monoid[A])A
Run Code Online (Sandbox Code Playgroud)

根据两种功能的类型,它们匹配.这两者有区别吗?为什么要隐式使用隐式参数?在这个简单的例子中,它感觉更加冗长.

当我在REPL中运行上面没有隐含的东西时,我得到以下错误

隐含的参数

<console>:11: error: could not find implicit value for parameter m: Monoid[String]
Run Code Online (Sandbox Code Playgroud)

隐式地和a:Monoid

<console>:11: error: could not find implicit value for evidence parameter of type Monoid[String]
Run Code Online (Sandbox Code Playgroud)

scala implicit

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

为什么sbt控制台在多模块项目中看不到子项目的包?

这是我的项目/ Build.scala:

package sutils

import sbt._
import Keys._

object SutilsBuild extends Build {

  scalaVersion in ThisBuild := "2.10.0"

  val scalazVersion = "7.0.6"

  lazy val sutils = Project(
    id = "sutils",
    base = file(".")
  ).settings(
    test := { },
    publish := { }, // skip publishing for this root project.
    publishLocal := { }
  ).aggregate(
    core
  )

  lazy val core = Project(
    id = "sutils-core",
    base = file("sutils-core")
  ).settings(
    libraryDependencies += "org.scalaz" % "scalaz-core_2.10" % scalazVersion
  )
}
Run Code Online (Sandbox Code Playgroud)

这似乎正在编译我的项目就好了,但是当我进入控制台时,我无法导入任何刚刚编译的代码?! …

scala sbt

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

在OSX和JVM 7上,FileChannel.open似乎被打破了

在OSX与JVM 7,我看到的是FileChannel.open与CREATE_NEW似乎并不符合文档.下面的代码,我希望创建一个新文件,只有在它不能(权限,磁盘问题)或文件已经存在时才会失败.

scala> FileChannel.open(new File("/tmp/doesnotexist").toPath, StandardOpenOption.CREATE_NEW)
java.nio.file.NoSuchFileException: /tmp/doesnotexist
  at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
  at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
  at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
  at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
  at java.nio.channels.FileChannel.open(FileChannel.java:287)
  at java.nio.channels.FileChannel.open(FileChannel.java:334)
  ... 32 elided

scala> val path = new File("/tmp/doesnotexist")
path: java.io.File = /tmp/doesnotexist

scala> path.createNewFile()
res9: Boolean = true

scala> FileChannel.open(path.toPath, StandardOpenOption.CREATE_NEW)
res10: java.nio.channels.FileChannel = sun.nio.ch.FileChannelImpl@19fed8d0

scala> FileChannel.open(path.toPath, StandardOpenOption.CREATE_NEW)
res11: java.nio.channels.FileChannel = sun.nio.ch.FileChannelImpl@5c6ff75

scala> FileChannel.open(path.toPath, StandardOpenOption.CREATE_NEW)
res12: java.nio.channels.FileChannel = sun.nio.ch.FileChannelImpl@1fa547d1
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的Java

$ java -version
java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM …
Run Code Online (Sandbox Code Playgroud)

java macos jvm

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

JavaScript中的GEDCOM解析器

我一直在寻找JavaScript中的GEDCOM解析器.目前是否存在?我发现它们有多种语言,但还没有用JavaScript.

javascript parsing genealogy gedcom

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

OSX和chroot无法找到/ bin/bash

我正试图让chroot在我的mac书上工作.我设置了jail目录以包含/ bin/sh和/ bin/bash的所有要求(递归地称为/ usr/bin/otool)

# ls /var/chroot/*/*
/var/chroot/bin/bash    /var/chroot/bin/sh

/var/chroot/usr/lib:
libDiagnosticMessagesClient.dylib       libauto.dylib
libc++abi.dylib                         libobjc.A.dylib
libSystem.B.dylib                       libc++.1.dylib
libncurses.5.4.dylib                    system
Run Code Online (Sandbox Code Playgroud)

当我尝试在/ var/chroot上使用chroot时,它一直说它无法找到/ bin/bash

# chroot /var/chroot/
chroot: /bin/sh: No such file or directory
$ sudo chroot /var/chroot/
chroot: /bin/bash: No such file or directory
Run Code Online (Sandbox Code Playgroud)

有什么想法导致chroot无法在我的Mac上工作?

OSX版本10.8.4

编辑:在CentOS上,当我运行ldd/bin/bash时,我得到了所有需要的库.如果我不复制它们,它说/ bin/bash:没有这样的文件或目录.所以我认为这意味着在mac上我缺少libs; 只是不确定哪个.

linux macos bash chroot

7
推荐指数
2
解决办法
3267
查看次数

其他项目的gradle pull测试罐

我在maven中有一个多项目设置并试图切换到gradle.我试图弄清楚如何让一个项目的测试依赖包括另一个项目的测试jar.现在我在ProjectA中有以下内容:

packageTests = task packageTests(type: Jar) {
  classifier = 'tests'
  from sourceSets.test.output
}

tasks.getByPath(":ProjectA:jar").dependsOn(packageTests)
Run Code Online (Sandbox Code Playgroud)

在ProjectB我有:

testCompile project(path: ':ProjectA', classifier: 'tests')
Run Code Online (Sandbox Code Playgroud)

我看到我的测试无法编译.看起来他们缺少测试jar中定义的类.当我检查构建目录时,我看到ProjectA-0.1.56-SNAPSHOT-tests.jar存在.

在maven中,我有以下ProjectA:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <executions>
      <execution>
        <phase>package</phase>
        <goals>
          <goal>test-jar</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
Run Code Online (Sandbox Code Playgroud)

这对于ProjectB来说:

<!-- Testing -->
<dependency>
  <groupId>com.example</groupId>
  <artifactId>ProjectA</artifactId>
  <version>0.1.56-SNAPSHOT</version>
  <type>test-jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它像maven一样工作?

gradle maven

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

Tomcat中每次战争的不同环境变量

有没有办法为tomcat中的不同war文件使用不同的环境变量?我正在使用第三方战争,因此需要对同一战争进行多次部署,但要使用不同的环境变量(因此它将加载不同的配置)。

java tomcat

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

使用testng和maven运行不同的测试套件

我正在使用TestNg和Maven以及surefire插件来运行我的测试.我有几个不同的组件,我希望能够使用相同的pom在不同的时间运行.目前为了做到这一点,我有几个不同的XML文件定义测试套件,我有pom设置,所以我可以做mvn test -Dtestfile =/path并使用该套件.

我想知道是否有办法将XML文件合并到一个文件中并选择基于测试名或其他系统?

编辑:我已经使用Smoke,Sanity,Regression定义了所有测试,并且我希望能够为给定组件运行所有回归.如果我运行TestNG CLI,我可以给出-testnames comp1,comp2,comp3等.其中每个组件在一个包含多个tests()的xml套件中定义.我想知道是否有任何方法可以在maven中使用exec:java插件.

testng maven maven-surefire-plugin

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