小编vit*_*dze的帖子

从单个源文件夹中抓取多个罐子

至于现在,我们有一个名为单个源文件夹的项目结构src,其中包含三个模块的源代码.我想做的是:

1)编译源代码.使用sourceSets定义可以轻松完成此操作:

sourceSets {
    main {
        java {
            srcDir 'src'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

2)将编译结果放入三个罐子里.我通过三个'jar'类型的任务来做这件事:

我现在通过三个单独的任务来做这件事:

问题是,server.jar应该包含不包含在所有类client.jarutil.jar.在ant build脚本中,我们使用differenceant task 来解决这个问题.如何在gradle中完成(我目前的方法不起作用)?

也许我的方法是完全错误的.请指教.

PS至于现在我们不能改变项目源代码文件夹结构.

java jar gradle

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

Gradle - jUnit测试中的性能不佳

我们正在从ant构建脚本转向gradle.在我们开始运行jUnit集成测试之前,一切看起来都很好.在夜间运行需要大约2个小时(通过蚂蚁),但用gradle运行相同的测试大约需要5个小时.这很奇怪.通过简短的调查,我发现测试类中的方法数量存在一定的相关性.数字越大,测试越慢.现在我正在运行一个包含28种测试方法的测试类.从蚂蚁或从eclipse或intellij想法运行需要1分钟,而从gradle运行相同的测试需要3分30秒.我尝试使用1.8和1.9 gradle.

测试任务:

task testSingle(type: Test) {
    classpath = configurations.coreTest

    maxHeapSize = '1G'
    jvmArgs '-XX:MaxPermSize=192M'

    include 'com/test/core/CAllocateGainTest*'
}
Run Code Online (Sandbox Code Playgroud)

请看屏幕截图

  • 用gradle运行测试

内存使用情况

  • Gradle过程

  • 有jUnit测试的分叉的gradle工作者

  • 在eclipse中运行相同的测试

Eclipse设置

UPDATE

当我使用具有类似配置的ant的junit任务时(参见下面的代码片段),测试运行就好了:

task testAllocateGains() {
    ant.junit(fork: 'yes', maxmemory: '1G') {
        formatter(type: 'xml')
        classpath(path: configurations.coreTest.asPath)

        jvmarg(value: '-XX:MaxPermSize=129M')

        batchtest(todir: 'build/test-results') {
            fileset(dir: 'build/classes/test') {
                include (name: 'com/test/core/CAllocateGainTest*')
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

$ gradle testAllocateGains
:testAllocateGains UP-TO-DATE

BUILD SUCCESSFUL

Total time: 1 mins 15.575 secs
Run Code Online (Sandbox Code Playgroud)

内存使用情况

  • Gradle过程

  • 分叉的ant jUnit进程

有谁知道如何描述这个问题?

performance junit gradle

6
推荐指数
0
解决办法
2520
查看次数

标签 统计

gradle ×2

jar ×1

java ×1

junit ×1

performance ×1