小编dty*_*dty的帖子

如何解读Gradle DSL

我正在努力学习Gradle.我偏好的学习方式是从低层次了解正在发生的事情.为此,我试图解释有关DSL参考的文档的示例6.1中发生的情况:

task hello {
    doLast {
        println 'Hello world!'
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这个脚本是在一个上下文中执行的Project.所以我可以从Project 文档中看到有很多重载task(...)方法.看一下签名,我需要选择一个有闭包作为最终参数的签名.因为我们没有在Map这里传递,所以我假设被调用的方法是task(String name, Closure closure).

但是,我正在努力的部分是,在这个脚本中,文字字符串如何hello映射到a String.

另一个例子是例6.7:

task taskX(dependsOn: 'taskY') << {
    println 'taskX'
}

task taskY << {
    println 'taskY'
}
Run Code Online (Sandbox Code Playgroud)

在这里,我假设我们正在调用task(Map<String, ?> args, String name)方法的形式.但,

  1. 再一次,文字字符串如何taskX最终成为String
  2. 鉴于括号不用于构造Map文字,括号中的部分如何最终成为Map
  3. 如果我已经正确地找出了调用哪个方法,那么与DSL文档相比,脚本中错误顺序的参数是不是?
  4. 使用括号的语法像方法调用一样查找全世界.这可能表示委托给Project对象解析taskX为未知方法.但是,AFAIK,方法调用在这一点上在语法上不会有效,因为方法调用task紧接在它之前.

正如您所看到的,我对示例语法如何映射到DSL参考指南感到有点困惑,这让我真的很难理解基层正在发生的事情. …

gradle

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

检测Eof是否有JPG图像

我正在通过TCP连续地从我的服务器向客户端发送许多图像.现在在客户端,如何有效地检测到这是我的一个图像的结束,所以将其写入文件系统然后下一个图像,依此类推.

最好的祝福, ...

jpeg

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

Objective-C是否允许循环依赖?

我在Objective-C中重写了一个Java库,我遇到了一个奇怪的情况.我有两个相互导入的类.这是一个循环依赖.Objective-C是否支持这种情况?如果没有,你怎么建议我重写它?

objective-c circular-dependency

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

使用Hudson/Jenkins API确定当前是否正在运行给定作业

是否有API来确定给定作业当前是否正在运行?

理想情况下,我还希望能够确定其估计完成百分比并获取SVN修订号的详细信息并提交评论!

编辑:

我找到了答案.http://host/job/project/lastBuild/api/在某个地方几乎拥有我需要的所有东西!如果您启动手动构建,它将不会告诉您SCM更改集,但这是有道理的.它仍然告诉你最新的SCM修订版,所以这很好.总而言之,这对我的目的来说足够好了.

hudson hudson-api jenkins

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

32位机器上的long long int

非常简单的问题,我读到GCC支持long long int类型.但是,当CPU只有32位宽时,如何使用它进行数学运算?

c c++ types

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

如何使用Gradle生成我的源码的ZIP?

我正在将一个相对较小的项目从Ant转换为Gradle.我希望将构建脚本中的行数减少大约75%!

Ant构建的一件事是生成源ZIP(即整个项目的ZIP,删除了某些位 - ./build,各种Eclipse文件夹等).虽然将其迁移到Gradle,但我决定使用"包含" "方法,而不是"独占"的方法,以便事情不会在以后被意外包括在内.

我希望能够获取所有源集的源代码和资源,而无需明确列出目录,但我无法使其正常工作.

这是我到目前为止(甚至没有运行!):

task srcZip(type: Zip) {
    classifier = 'src'
    from projectDir
    include {
        sourceSets.collect {
            it.allSource.asPath
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ZIP文件应该以文件夹'src/main/java/...','src/main/resources/...','src/test/java/...'等结束,我不应该我稍后添加更多源集时需要重新访问此任务.

提前致谢!

zip software-distribution gradle

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

AWS Redshift JDBC插入性能

我正在编写一个概念验证应用程序,旨在以每秒约1000条消息的速率获取实时点击流数据,并将其写入Amazon Redshift.

我正在努力获得其他人声称的表现(例如,这里).

我正在运行一个带有2个dw.hs1.xlarge节点(+ leader)的集群,正在执行加载的机器是与运行64位Ubuntu 12.04.1的Redshift集群在同一VPC上的EC2 m1.xlarge实例.

我正在使用Java 1.7(来自Ubuntu repos的openjdk-7-jdk)和Postgresql 9.2-1002驱动程序(主要是因为它是Maven Central中唯一一个使我的构建更容易!).

我已经尝试了这里显示的所有技术,除了最后一个.

我无法使用,COPY FROM因为我们想要"实时"加载数据,因此通过S3或DynamoDB进行暂存不是一个真正的选择,Redshift不支持COPY FROM stdin某些原因.

以下是我的日志摘录,显示每个行以大约15 /秒的速率插入:

2013-05-10 15:05:06,937 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Beginning batch of 170
2013-05-10 15:05:18,707 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Done
2013-05-10 15:05:18,708 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Beginning batch of 712
2013-05-10 15:06:03,078 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Done
2013-05-10 15:06:03,078 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Beginning batch of 167
2013-05-10 15:06:14,381 [pool-1-thread-2] INFO  uk.co...redshift.DatabaseWriter - Done
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我可以采取哪些其他方法?

postgresql amazon-redshift

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

为什么Mockito会两次打电话给我的匹配器?

我有一个Mockito测试看起来有点像这样(当然简化):

@RunWith(MockitoJUnitRunner.class)
public class BlahTest {
    private static final int VERSION = 41;
    private static final int PAGE_SIZE = 4096;

    @Mock private FileChannel channel;

    @Test
    public void shouldWriteStandardHeader() throws Exception {
        final Blah blah = new Blah(channel, VERSION, PAGE_SIZE);
        blah.create();

        verify(channel).write(littleEndianByteBufferContaining(Blah.MAGIC_NUMBER,
                                                               VERSION,
                                                               PAGE_SIZE));
    }

    private ByteBuffer littleEndianByteBufferContaining(final int... ints) {
        return argThat(byteBufferMatcher(ints));
    }

    private Matcher<ByteBuffer> byteBufferMatcher(final int... ints) {
        return new TypeSafeMatcher<ByteBuffer>() {
            @Override
            public void describeTo(final Description description) {
                description.appendText("a little-endian byte buffer containing integers ").
                            appendValueList("", ",", "", …
Run Code Online (Sandbox Code Playgroud)

mockito

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

JConsole如何决定使用JMX密钥渲染树的顺序?

在JConsole中查看JMX bean时,它会将给定域部分下的所有bean呈现为层次结构.(JVisualVM与JConsole MBeans插件具有相同的行为.)

我意识到JMX对象名称不是分层的,但JConsole仍然按某种顺序选择键,以便它可以分层次地呈现它们.

有人知道它用来订购钥匙的规则是什么吗?它似乎不是从左到右或按字母顺序排列的.

谢谢.

jmx jconsole jvisualvm objectname

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

如何从表中获取主键而不进行第二次旅行?

如何在进行LINQ To SQL数据库的第二次访问的情况下从表中获取主键ID号?

现在,我将数据提交到一个表中,并再次进行一次旅行,以确定为新字段分配的id(在自动增量id字段中).我想在LINQ To SQL中执行此操作,而不是在Raw SQL中执行此操作(我不再使用Raw SQL).

此外,我的问题的第二部分是:我总是小心地知道在线用户的ID,因为我宁愿使用他们的ID在各种表中调用他们的信息,而不是使用GUID或用户名,这些都是长的字符串.我之所以这样做,是因为我认为进行数字比较的SQL Server比使用用户名(字符串)甚至是guid(非常长的字符串)比较更有效(?).我的问题是,我是否比我应该更关心?差异值是否总是将userid(int32)保持在会话状态?


@RedFilter为第一个问题提供了一些有趣/有希望的线索,因为我在这个阶段无法尝试它们,如果有人知道或可以确认他在答案的评论部分建议的这些变化?

c# linq vb.net asp.net linq-to-sql

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