小编Man*_*gor的帖子

复制树与gradle和改变结构?

复制时可以通过gradle改变树的结构吗?

原版的

  • MOD /一个/ SRC
  • 模/ B/SRC

期望

  • DEST/MOD-A /源
  • DEST/MOD-B /源
  • DEST/MOD-C /源

我不确定在哪里创建闭包并覆盖复制树逻辑

我想做gra's相当于ant的globmapper功能

<property name="from.dir" location=".."/>      
<property name="to.dir" location="dbutil"/>
<copy>
    <fileset dir="${from.dir}" ... />
    <globmapper from="${from.dir}/*/db" to="${to.dir}"/> 
</copy>
Run Code Online (Sandbox Code Playgroud)

谢谢

彼得

copy rename build gradle

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

Gradle 6.6.1 和 Kotlin 1.4 - 运行时版本冲突

我使用最新的 Gradle (v. 6.6.1) 和最新的 Kotlin (v. 1.4)。

buildSrc项目定义了所有 Kotlin 版本。不幸的是,它收到以下错误。

The `kotlin-dsl` plugin applied to project ':buildSrc' enables experimental Kotlin compiler features. For more information see https://docs.gradle.org/6.6.1/userguide/kotlin_dsl.html#sec:kotlin-dsl_plugin
w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath:
    /xxx/.gradle/wrapper/dists/gradle-6.6.1-all/43pddabvuyfjfvs8uyekonb98/gradle-6.6.1/lib/kotlin-stdlib-1.3.72.jar (version 1.3)
    /xxx/.gradle/wrapper/dists/gradle-6.6.1-all/43pddabvuyfjfvs8uyekonb98/gradle-6.6.1/lib/kotlin-stdlib-common-1.3.72.jar (version 1.3)
    /xxx/.gradle/wrapper/dists/gradle-6.6.1-all/43pddabvuyfjfvs8uyekonb98/gradle-6.6.1/lib/kotlin-stdlib-jdk7-1.3.72.jar (version 1.3)
    /xxx/.gradle/wrapper/dists/gradle-6.6.1-all/43pddabvuyfjfvs8uyekonb98/gradle-6.6.1/lib/kotlin-stdlib-jdk8-1.3.72.jar (version 1.3)
    /xxx/.gradle/wrapper/dists/gradle-6.6.1-all/43pddabvuyfjfvs8uyekonb98/gradle-6.6.1/lib/kotlin-reflect-1.3.72.jar (version 1.3)
    /xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.4.0/aa2101a19d8688e368ae6e35e8967550ced73884/kotlin-reflect-1.4.0.jar (version 1.4)
    /xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.72/916d54b9eb6442b615e6f1488978f551c0674720/kotlin-stdlib-jdk8-1.3.72.jar (version 1.3)
    /xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.72/3adfc2f4ea4243e01204be8081fe63bde6b12815/kotlin-stdlib-jdk7-1.3.72.jar (version 1.3)
    /xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.4.0/63e75298e93d4ae0b299bb869cf0c627196f8843/kotlin-stdlib-1.4.0.jar (version 1.4)
    /xxx/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.4.0/1c752cce0ead8d504ccc88a4fed6471fd83ab0dd/kotlin-stdlib-common-1.4.0.jar (version 1.4)
Run Code Online (Sandbox Code Playgroud)

buildSrc项目有以下 …

gradle kotlin gradle-kotlin-dsl kotlin-script

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

在Gradle Kotlin DSL中包含脚本

我正在尝试在具有以下限制的项目中开始使用Gradle的Kotlin DSL:

  • 项目具有不同的模块(此外:有时这些模块使用不同的插件,但是如果两个项目使用相同的插件,则插件的版本相同)。
  • Project仅具有内部公司存储库(例如,我们不直接使用jcenter,而是使用代理)。

Groovy提供的功能:

  • 一些常见的配置项被排除在单独的脚本之外。请检查以下示例。
  • Gradle模块包括这些文件。

结果(仅基于我的示例):

  • 我们不需要在每个模块中添加相同的代码行。
  • 大多数项目仅在依赖项列表方面有所不同。

我尝试使用Gralde KTS复制相同内容,但遇到以下困难:

  • 我无法在包含文件中应用插件并在模块中使用它。在这种情况下,我会收到编译错误(因为未将插件类型添加到模块脚本中)。
  • 我无法将常量提取到在每个脚本(build.gradle.kts包括根)中使用它们的共同点。使用Groovy,我只能使用like之类的变量springBootVersion,但是使用Kotlin Script,我必须在每个模块文件中创建相同的属性。
  • 没有公共存储库访问权限,预编译的脚本插件将无法工作(例如,我无法以“仅使用默认的嵌入式Kotlin脚本版本,从这些URL下载所有依赖项:...”的方式配置公共脚本文件。

包含文件样本:

apply plugin: 'kotlin'

compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

compileTestKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
Run Code Online (Sandbox Code Playgroud)

Gradle模块样本:

apply from: "${rootDir}/gradle/include/kotlin-common-include.gradle"

dependencies {
    compile project(':my.project.libraries.common') 

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion
}
Run Code Online (Sandbox Code Playgroud)

问题:

  • 我怎样才能将所有公共常量(例如依赖项版本)放到单独的文件中,以仅通过类似的方式springBootVersionConstants.springBootVersion通过编译时检查将它们包括在内?
  • 如何提取适用于包含脚本的插件(以避免Gradle模块脚本过载)?
  • 如何使用没有公共全局存储库访问权限的预编译脚本插件

附加链接:

java gradle kotlin gradle-kotlin-dsl

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

如何获得IMethodSymbol的陈述?

我正在为.Net开发Code Fix提供程序.

我想检查方法内部,例如来自IMethodSymbol的方法语句.

作为一个例子,我在输入上有以下代码:

public void DoSomething(string input)
{
    if(input == null)
        throw new InvalidOperationException("!!!!");
}
Run Code Online (Sandbox Code Playgroud)

在代码修复方面,我有IMethodSymbol接口,并且无法获取方法语句,内部节点等(我想看'if',条件为'if',异常提升等).

我怎么才能得到它?

.net c# roslyn codefixprovider

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

当 .Net Thread 没有名称时,如何使用 NLog 打印 threadid 而不是 threadname?

我有如下 NLog 配置。

如果存在,它会打印线程的名称。否则我会得到空字符串而不是线程名称。

问题:我如何归档下面的行为?

  • 如果线程有名称 - 打印线程名称
  • 否则 - 打印 ManagedThreadId(例如与threadidNLog 变量相同)。

当前配置示例:

<variable name="defaultLayout" value="${date} ${level} [${threadname}] ${logger} - ${message} ${exception:format=ToString}"/>

<targets async="true">
  <target name="ConsoleAppender" 
          type="ColoredConsole" 
          layout="${var:defaultLayout}" />
</targets>
Run Code Online (Sandbox Code Playgroud)

请注意:我想避免打印这两个变量,例如这种没有用的布局: ... [${threadname}-${threadid}] ...

.net c# logging multithreading nlog

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

如何在 Kotlin 的公共池下创建单线程协程上下文?

简短要求:能够创建协程上下文,该上下文仅在单线程中执行(例如,没有并行性)。

附加要求:最好使用现有的 CommonPool(例如线程池)来完成这些任务

实际上 kotlin 协程有一个方法newSingleThreadContext可以创建单独的线程并将所有任务安排到其中。然而,这是专用线程,因此大约 1000 个这样的上下文将需要大量资源。

因此,我想要具有以下特征的上下文:

  • 最多可以同时执行一个任务
  • 该上下文应该重用任何其他上下文(例如父上下文)。例如,上下文不应包含额外的线程

java multithreading threadpool kotlin kotlin-coroutines

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