小编Mik*_*der的帖子

向Gradle添加其他测试套件

我正在尝试将Gradle(1.4)添加到具有多个测试套件的现有项目中.位于src/test/java成功运行的标准单元测试,但是我无法设置任务来运行位于的JUnit测试src/integration-test/java.

当我运行时,gradle intTest我得到几个cannot find symbol类的错误src/main.这让我相信依赖关系没有正确设置.如何设置intTest以便它将运行我的JUnit集成测试?

的build.gradle

apply plugin: 'java'

sourceCompatibility = JavaVersion.VERSION_1_6

sourceSets {
    integration {
        java {
            srcDir 'src/integration-test/java'
        }
        resources {
            srcDir 'src/integration-test/resources'
        }
    }
}

dependencies {
    compile(group: 'org.springframework', name: 'spring', version: '3.0.7')

    testCompile(group: 'junit', name: 'junit', version: '4.+')
    testCompile(group: 'org.hamcrest', name: 'hamcrest-all', version: '1.+')
    testCompile(group: 'org.mockito', name: 'mockito-all', version: '1.+')
    testCompile(group: 'org.springframework', name: 'spring-test', version: '3.0.7.RELEASE')

    integrationCompile(group: 'junit', name: 'junit', version: '4.+')
    integrationCompile(group: 'org.hamcrest', …
Run Code Online (Sandbox Code Playgroud)

java junit integration-testing unit-testing gradle

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

Kotlin有"特质"类型吗?

我一直trait在科特林的例子中找到.例如,这个答案使用trait.

trait关键字是否在Kotlin中使用?如果是,我在哪里可以找到它的信息,如果不是,那么它在某些时候是语言规范的一部分吗?

kotlin

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

我可以在Git别名中使用哪些字符?

我可以在Git别名中使用哪些字符?例如,"my.branch"或"@mine"可以是别名吗?

有没有办法让别名区分大小写?前:我的B牧场

别名文件建立没有列出可接受的字符或约区分大小写什么.

git alias

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

Gradle println在未调用时打印

我的目标是在idea任务运行时向控制台打印一条消息,但不幸的是,只要运行任何内容,就会打印消息.为什么在idea没有运行任务时执行打印行?如何仅在idea执行任务时显示消息?

的build.gradle

apply plugin: 'idea'

task hello << {
    println 'Hello world!'
}

tasks.idea() {
    println '*********************************************************'
    println '* You should open build.gradle as a native project from *'
    println '* within IntelliJ.                                      *'
    println '*********************************************************'
}
Run Code Online (Sandbox Code Playgroud)

输出命令 gradle hello

*********************************************************
* You should open build.gradle as a native project from *
* within IntelliJ.                                      *
*********************************************************
:hello
Hello world!

BUILD SUCCESSFUL

Total time: 2.846 secs
Run Code Online (Sandbox Code Playgroud)

工作方案

tasks.getByPath('idea') << {
    println '*********************************************************'
    println '* …
Run Code Online (Sandbox Code Playgroud)

gradle

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

如何删除Android Studio(Intellij)中的右边距线?

我想删除Android Studio/IntelliJ中的右边距线.我在下图中指出了有问题的一行.

我搜索Android工作室设置并多次搜索Google ..但我找不到任何东西.

如何删除该行?

在此输入图像描述

android intellij-idea android-studio intellij-14

10
推荐指数
4
解决办法
4814
查看次数

在Gradle中,如何生成具有动态依赖关系的POM文件,该文件已解析为使用的实际版本?

在Gradle中,如何生成具有动态依赖关系的POM文件,该文件已解析为使用的实际版本?

dependencies {
    testCompile(group: 'junit', name: 'junit', version: '4.+')
}
Run Code Online (Sandbox Code Playgroud)

这是从上面的依赖项生成的.

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.+</version>
        <scope>test</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

我希望将其+解析为如下的应计版本.

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

关于Maven Publishing的Gradle指南章节谈到了这样做,但没有提到如何做.

使用此挂钩,您可以修改POM的任何方面.例如,您可以使用用于生成构建的实际版本替换依赖项的版本范围.

使用Peter Niederwieser的答案中的信息,我创建了一个任务,该任务读取包含动态依赖关系的POM,并使用已解析依赖关系的新pom覆盖它.

/**
 * Reads and Overwrites POM file resolving dynamic dependencies
 */
task cleanPom(dependsOn: writeNewPom) << {
    // Get existing pom file
    Node xml = new XmlParser().parse(pomFileLocation)

    // Generate map of resolved versions
    Map resolvedVersionMap = new HashMap()
    Set<ResolvedArtifact> resolvedArtifacts = configurations.compile.getResolvedConfiguration().getResolvedArtifacts()
    resolvedArtifacts.addAll(configurations.testCompile.getResolvedConfiguration().getResolvedArtifacts()) …
Run Code Online (Sandbox Code Playgroud)

java dependencies gradle pom.xml maven

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

IntelliJ如何知道目录是"源"还是"测试源"?

IntelliJ如何知道目录是"源"还是"测试源"?如何将目录标记为"测试源"?

build.gradle 1

apply plugin: 'java'
apply plugin: 'idea'

idea {
    module {
        sourceDirs += file('src/main/java')

        testSourceDirs += file('src/awesome-test/java')
    }
}
Run Code Online (Sandbox Code Playgroud)

使用"build.gradle 1"文件,src/awesome-test/java标记为"测试源".

build.gradle 2

apply plugin: 'java'
apply plugin: 'idea'

idea {
    module {
        sourceDirs += file('src/main/java')

        testSourceDirs += file('src/awesome-test/java')
    }
}

sourceSets {
    'awesome-test' {
        java {
            srcDir 'src/awesome-test/java'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,只要添加引用此目录的源集("build.gradle 2"),就会src/awesome-test/java将其标记为"源".

build.gradle 3

apply plugin: 'java'
apply plugin: 'idea'

idea {
    module {
        sourceDirs += file('src/main/java')

        testSourceDirs += …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea gradle

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

Elasticsearch使用Java客户端查找所有索引

有没有办法使用Java客户端获取Elasticsearch中的索引列表?我已经能够找到使用Marvel/Sense执行此操作的示例,但我似乎无法找到使用Java客户端执行此操作的任何示例.

java elasticsearch

9
推荐指数
3
解决办法
6141
查看次数

Kafka Streams:使用相同的`application.id`来使用多个主题

我有一个需要收听多个不同主题的应用程序; 每个主题都有关于如何处理消息的单独逻辑.我曾想过为每个KafkaStreams实例使用相同的kafka属性,但是我得到的错误如下所示.

错误

java.lang.IllegalArgumentException: Assigned partition my-topic-1 for non-subscribed topic regex pattern; subscription pattern is my-other-topic
Run Code Online (Sandbox Code Playgroud)

代码(kotlin)

class KafkaSetup() {
    companion object {
        private val LOG = LoggerFactory.getLogger(this::class.java)
    }

    fun getProperties(): Properties {
        val properties = Properties()
        properties.put(StreamsConfig.APPLICATION_ID_CONFIG, "my-app")
        return properties
    }

    private fun listenOnMyTopic() {
        val kStreamBuilder = KStreamBuilder()
        val kStream: KStream<String, String> = kStreamBuilder.stream("my-topic")

        kStream.foreach { key, value -> LOG.info("do stuff") }

        val kafkaStreams = KafkaStreams(kStreamBuilder, getProperties())
        kafkaStreams.start()
    }

    private fun listenOnMyOtherTopic() {
        val kStreamBuilder = KStreamBuilder() …
Run Code Online (Sandbox Code Playgroud)

apache-kafka apache-kafka-streams

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

实例化在Kotlin中使用递归泛型的具体Java类

我可以实例化一个在Kotlin中使用递归泛型的具体Java类,如果是,那么如何?

细节

我试图实例化一个使用递归泛型的Java类,类似于下面的例子.我找到了一个解决方法,将Java类包装在一个新类中,但感觉就像我正在回避一个我应该能够直接处理的问题.

具有递归泛型的Java类

public class MyLegacyClass<T extends MyLegacyClass<T>> {
    // implementation ...
}
Run Code Online (Sandbox Code Playgroud)

它是如何在Java中实例化的

// In Java we just ignore the generic type...
MyLegacyClass myLegacyClass = new MyLegacyClass();
Run Code Online (Sandbox Code Playgroud)

尝试在Kotlin中实例化失败

class myClass {
    // Error: One type argument expected for class...
    val x: MyLegacyClass = MyLegacyClass()

    // Still 'Error: One type argument expected for class..' You start to see the problem here. 
    val y: MyLegacyClass<MyLegacyClass<MyLegacyClass<MyLegacyClass>>> = MyLegacyClass()
}
Run Code Online (Sandbox Code Playgroud)

Kotlin解决方法

class MyLegacyClassWrapper : MyLegacyClass<MyLegacyClassWrapper>()

class myClass {
    val x: MyLegacyClass<MyLegacyClassWrapper> = …
Run Code Online (Sandbox Code Playgroud)

java generics interop kotlin

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