我想添加一个sourceset src/gen/java.使用groovy这很容易,并已在https://discuss.gradle.org/t/how-to-use-gradle-with-generated-sources/9401/5中进行了描述
sourceSets {
gen {
java.srcDir "src/gen/java"
}
}
Run Code Online (Sandbox Code Playgroud)
但我坚持使用kotlin-dsl添加一个新的.我所拥有的只是:
java {
sourceSets {
}
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮到这里
我有一个有几列的大桌子.其中一列是created_at时间戳.现在我想添加一个名为的新列last_activated.该列最初应填充值created_at.
起初我只是改变了表来添加新列 - >没有问题,但我尝试过
UPDATE my_table SET last_activated = created_at;
Run Code Online (Sandbox Code Playgroud)
是什么导致了以下问题:
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:54 no viable alternative at input ';' (update catalog_item set last_activated_at = [created_at];)">
Run Code Online (Sandbox Code Playgroud)
这有点可能吗?
我正在使用cassandra 3.5.
使用gradle-groovy,可以使用以下命令创建新配置:
configurations {
explode
}
dependencies {
explode (group: 'org.apache.samza', name: 'samza-shell', ext: 'tgz', classifier: 'dist', version: "$SAMZA_VERSION")
}
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何用kotlin-dsl做到这一点。我试过了:
val explode by configurations
dependencies {
explode(group = "org.apache.samza", name = "samza-shell", ext = "tgz", classifier = "dist", version = samzaVersion)
// "explode"(group = "org.apache.samza", name = "samza-shell", ext = "tgz", classifier = "dist", version = samzaVersion)
}
Run Code Online (Sandbox Code Playgroud)
但没有成功。有任何想法吗?
为什么这样做
val foo: kotlin.collections.List<String> = java.util.ArrayList()
Run Code Online (Sandbox Code Playgroud)
这ArrayList不是继承Kotlin List,是吗?
我想使用会话 cookie 与 Ktor 进行身份验证,到目前为止我所拥有的是:
private const val SEVER_PORT = 8082
private const val SESSION_COOKIE_NAME = "some-cookie-name"
data class AuthSession(
val authToken: String
)
fun main() {
embeddedServer(Netty, port = SEVER_PORT, module = Application::basicAuthApplication).start(wait = true)
}
fun Application.basicAuthApplication() {
install(Sessions) {
cookie<AuthSession>(SESSION_COOKIE_NAME, SessionStorageMemory()) {
cookie.path = "/"
}
}
install(DefaultHeaders)
install(CallLogging)
install(Authentication) {
session<AuthSession> {
validate { session ->
// TODO: do the actual validation
null
}
}
}
routing {
authenticate {
get("/") {
call.respondText("Success")
}
}
} …Run Code Online (Sandbox Code Playgroud) 这个问题已经有了答案:如何将所有依赖项包含在一个 jar 文件中,尽管它是针对 Groovy 的
我正在使用 gradlekotlin-dsl并且代码不兼容。我尝试使用几种方法使其工作,包括:
tasks.withType<Jar> {
configurations["compileClasspath"].forEach { file: File ->
copy {
from(zipTree(file.absoluteFile))
}
}
}
Run Code Online (Sandbox Code Playgroud)
虽然这不起作用。那么如何kotlin-dsl在 gradle 中包含依赖呢?
我不想调查解决 maven 依赖项时发生的 SSL 错误。以我的天真,我认为这会奏效。
export GRADLE_OPTS=-Djavax.net.debug=ssl
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。根本没有 SSL 输出。还附加
--debug
Run Code Online (Sandbox Code Playgroud)
没有帮助。那么如何打开 SSL 日志呢?
我正在编写一个测试函数,它应该运行一个块或(当达到某个超时时)抛出一个异常.
我Coroutines在Kotlin 尝试这个,但结果是Coroutines和CompletableFuture:
fun <T> runBlockWithTimeout(maxTimeout: Long, block: () -> T ): T {
val future = CompletableFuture<T>()
// runs the coroutine
launch { block() }
return future.get(maxTimeout, TimeUnit.MILLISECONDS)
}
Run Code Online (Sandbox Code Playgroud)
这有效,但我不确定这是否是解决kotlin问题的预期方法.
我也尝试过其他方法:
runBlocking {
withTimeout(maxTimeout) {
block()
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不会像block电话那样迅速起作用Thread.sleep(...)
所以是CompletableFuture办法要走的路还是有一点的吗?
更新1 我想要实现的目标:
异步集成 - 测试代码(如从RabbitMq接收数据)应该以这样的方式测试:
var rabbitResults: List = ... // are filled async via RabbitListeners
...
waitMax(1000).toSucceed {
assertThat(rabbitResults).hasSize(1)
}
waitMax(1000).toSucceed {
assertThat(nextQueue).hasSize(3)
}
...
Run Code Online (Sandbox Code Playgroud) 关于 git 的这个说法是否正确,a (可以快进)基本上与将 a合并到分支的 HEADmerge相同?git reset --hard
(当merge不是快进时,很明显这个说法不成立)
当我使用板条箱创建 sha256 sum 时sha256,有一种旧的已弃用方法digest_bytes(有效),并且弃用还建议使用新digest函数。当我使用新函数作为替换时,会出现错误,编译器会建议一个非常奇怪但有效的解决方案。
fn main() {
let bytes: Vec<u8> = std::fs::read("./Cargo.toml").unwrap();
let hash: String = sha256::digest_bytes(&bytes); // deprecated but works
// let hash: String = sha256::digest(&bytes); // does not work
// let hash: String = sha256::digest(&*bytes); // works, but why
println!("{}", hash);
}
Run Code Online (Sandbox Code Playgroud)
sha256::digest(&bytes);这是我使用该行时的错误
--> src/main.rs:3:31
|
3 | let hash = sha256::digest(&bytes);
| -------------- ^^^^^^ the trait `Sha256Digest` is not implemented for `&Vec<u8>`
| |
| required by a bound introduced …Run Code Online (Sandbox Code Playgroud) 这个简单的程序会产生编译器错误:
#[tokio::main]
async fn main() {
tokio::spawn(async {
foo().await;
});
}
async fn foo() {
let f1 = bar();
let f2 = bar();
tokio::join!(f1, f2);
}
async fn bar() -> Result<(), Box<dyn std::error::Error>> {
println!("Hello world");
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
error[E0277]: `(dyn std::error::Error + 'static)` cannot be sent between threads safely
--> src/main.rs:5:18
|
5 | tokio::spawn(async {
| _____------------_^
| | |
| | required by a bound introduced by this call
6 | | foo().await;
7 | | });
| …Run Code Online (Sandbox Code Playgroud) SpringBoot 带有许多依赖项以及它们的默认版本。在 groovy-gradle 中,这样的依赖版本可以被覆盖:
ext['mockito.version'] = '1.7.5'
Run Code Online (Sandbox Code Playgroud)
但这对 kotlin-dsl 不起作用。我试过:
val mockito by extra { "2.12.0" }
val mockito.version by extra { "2.12.0" }
val `mockito.version` by extra { "2.12.0" }
Run Code Online (Sandbox Code Playgroud)
后两个,不要编译,第一个,不起作用。
如何在 kotlin 文件中覆盖版本(如果可能的话,我不想创建单独的属性文件)。