我正在扩展一个现有的性能测试项目,这是一个Scala项目,它使用Gatling进行模拟,使用Maven作为构建工具。我需要Scalaj作为一个新的依赖者。我将Scala版本从2.12.8
更改为2.13.0
,以便使用最新版本的Scalaj(2.4.2
),这导致使用io中的
。/
运算符的类出现编译错误。加特林。平民util。PathHelper
仅当我使用IntelliJ config运行项目时,才会出现此错误,但如果我运行mvn package
和mvn gatling:test
,则不会出现此错误。如果使用IntelliJ配置和Scala2.12.8
,也不会出现错误。
我认为这可能是一个兼容性问题,并检查了Gatling文档
我还检查了IntelliJ Scala插件是否有更新,但什么也没找到。
这是我的pom.xml
文件的相关部分:
<dependencies>
<dependency>
<groupId>io.gatling.highcharts</groupId>
<artifactId>gatling-charts-highcharts</artifactId>
<version>3.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scalaj/scalaj-http -->
<dependency>
<groupId>org.scalaj</groupId>
<artifactId>scalaj-http_2.13</artifactId>
<version>2.4.2</version>
</dependency>
</dependencies>
不编译的类(其中/
是导入类的函数):
package com.example.mypackage
import io.gatling.commons.util.PathHelper._
object PathHelper {
val projectRootDir: Path = "root_directory"
val mavenSourcesDirectory: Path = projectRootDir / "src"
}
一个例子切入点:
package com.example.mypackage
object ApplicationRunner {
def main(args: Array[String]): Unit = {
println(mavenSourcesDirectory.toString)
}
}
点击IntelliJ的Run按钮后收到的错误消息(我将一些不相关的项目特定信息更改为
Error:scalac: Error: assertion failed:
no extension method found for:
method /:(pathString: String)java.nio.file.Path
Candidates:
Candidates (signatures normalized):
"
while compiling: /home/me/example-repo/src/test/scala/com/example/mypackage/PathHelper.scala
during phase: globalPhase=erasure, enteringPhase=refchecks
library version: version 2.13.0
compiler version: version 2.13.0
reconstructed args: -classpath <.jar path for every dependency I use>
last tree to typer: Select(Apply(method to), foreach$mVc$sp)
tree position: <some line in an entirely different class where I don't use PathHelper>
tree tpe: (f: Int => Unit)Unit
symbol: (final override) method foreach$mVc$sp in class Range
symbol definition: final override def foreach$mVc$sp(f: Int => Unit): Unit (a MethodSymbol)
symbol package: scala.collection.immutable
symbol owners: method foreach$mVc$sp -> class Range
call site: object PathHelper in package mypackage in package mypackage
== Source file context for tree position ==
12 <line from file>
13 <line from file>
14 <tree position>
15 <line from file>
at scala.reflect.internal.SymbolTable.throwAssertionError(SymbolTable.scala:170)
at scala.tools.nsc.transform.ExtensionMethods.$anonfun$extensionMethod$1(ExtensionMethods.scala:54)
at scala.tools.nsc.transform.ExtensionMethods.extensionMethod(ExtensionMethods.scala:49)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$4.preEraseNormalApply(Erasure.scala:1102)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$4.preEraseApply(Erasure.scala:1204)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$4.preErase(Erasure.scala:1214)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$4.transform(Erasure.scala:1333)
at scala.tools.nsc.transform.Erasure$ErasureTransformer$$anon$4.transform(Erasure.scala:993)
at scala.reflect.internal.Trees$ValDef.$anonfun$transform$4(Trees.scala:405)
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2625)
<and so on for 78 more lines of stack trace>
毕竟,对我来说,它看起来像一个IntelliJ依赖处理问题。我已经找到了两个变通方法,所以这个问题并没有杀死我,但是它很不方便,我有兴趣学习如何修复它。另外,我对Scala还相当陌生,所以很有可能我错过了一些东西。
如有任何见解,将不胜感激。
在IntelliJ 202.2的最后更新后,我得到错误: 插件“Lombok”不兼容(直到build 201.SNAPSHOT) 我一直在寻找这个问题,但似乎我是唯一一个有这个IntelliJ版本问题的人。
我一直在我的笔记本电脑上使用lwjgl和GLSL 1.3进行一个项目。我的着色器在我的笔记本电脑上编译得很好,但是,当尝试在我的桌面上编译相同的着色器时,它有一个更新的显卡,我收到一个错误,说明着色器无法编译,因为着色器中存在错误。但是,着色器日志不会输出任何错误。我认为GLSL向后兼容它自己。 返回 我假设它与标准的GLSL 3.30相同。这是一个示例vertandfrag着色器,它适用于我的笔
全堆栈:
我一直试图编写一些opengl代码,在任何地方都可以使用,但又不太限制自己。 我想在只支持opengles2的设备上使用opengles2,在支持opengl核心的设备上使用opengles2。 另外,我希望能够在运行时选择使用哪一个(当然,如果可用的话)。 我知道GLEW,但不幸的是,大多数linux distros发布的GLEW版本仍然不兼容GLES2(debian,我在看你)。它只是分割断层
我想用JavaFXPorts和静态编程语言代码构建一个JavaFXAndroid应用。在JavaFXPorts项目中可以使用静态编程语言吗?下面是我的示例Gradle(版本5.6.4)项目: 注意:这段代码的问题是Kotlin运行时。。。有没有办法把所有东西捆绑在可执行Jar和Apk中? ./settings.gradle.kts /建造。格雷德尔。kts /应用/构建。格雷德尔。kts ./ap
是否可以使用web3J收听infura事件?我正在尝试获取事件,但出错 我在不同的博客中读到,使用web3J无法获取过滤事件,那么使用web3J和infura获取过滤事件的替代方案是什么?