我从这里下载了 karate-gadling 示例项目:https://github.com/karatelabs/karate/tree/master/karate-gadling
我在 IntelliJ 中打开项目并运行以下命令:mvn clean test-compile gadling:test
我收到错误 - “编译器桥接文件尚未安装”。
以下是完整日志:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< com.intuit.karate:karate-gatling >------------------
[INFO] Building karate-gatling 1.4.0
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] Parameter 'disableCompiler' is unknown for plugin 'gatling-maven-plugin:4.2.9:test (default-cli)'
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ karate-gatling ---
[INFO] Deleting C:\Repository\karate-gatling\target
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ karate-gatling ---
[INFO] skip non existing resourceDirectory C:\Repository\karate-gatling\src\main\resources
[INFO]
[INFO] --- compiler:3.8.1:compile (default-compile) @ karate-gatling ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Repository\karate-gatling\target\classes
[INFO] /C:/Repository/karate-gatling/src/main/scala/com/intuit/karate/gatling/GatlingMavenJobConfig.java: C:\Repository\karate-gatling\src\main\scala\com\intuit\karate\gatling\GatlingMavenJobConfig.java uses unchecked or unsafe
operations.
[INFO] /C:/Repository/karate-gatling/src/main/scala/com/intuit/karate/gatling/GatlingMavenJobConfig.java: Recompile with -Xlint:unchecked for details.
[INFO]
[INFO] --- scala:4.5.6:compile (default) @ karate-gatling ---
[INFO] Using incremental compilation using Mixed compile order
[INFO] Compiler bridge file: C:\Users\******\.sbt\1.0\zinc\org.scala-sbt\org.scala-sbt-compiler-bridge_2.13-1.5.8-bin_2.13.9__65.0-1.5.8_20211211T222914.jar
[INFO] Compiler bridge file is not installed yet
error:
bad constant pool index: 0 at pos: 48445
while compiling: <no file>
during phase: globalPhase=<no phase>, enteringPhase=<some phase>
library version: version 2.13.9
compiler version: version 2.13.9
reconstructed args: -bootclasspath C:\Users\******\.m2\repository\org\scala-lang\scala-library\2.13.9\scala-library-2.13.9.jar -classpath C:\Users\******\.m2\repository\net\java\dev\jna\jna\5.9.0\jna-5.9.0.jar;C:\Users\m1872
65\.m2\repository\org\scala-sbt\util-interface\1.5.6\util-interface-1.5.6.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-compiler\2.13.9\scala-compiler-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-re
flect\2.13.9\scala-reflect-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-sbt\compiler-interface\1.5.8\compiler-interface-1.5.8.jar;C:\Users\******\.m2\repository\org\jline\jline\3.21.0\jline-3.21.0.jar;C:\Users\******\.
m2\repository\io\github\java-diff-utils\java-diff-utils\4.12\java-diff-utils-4.12.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-compiler\2.13.9\scala-compiler-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\
scala-library\2.13.9\scala-library-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-reflect\2.13.9\scala-reflect-2.13.9.jar;C:\Users\******\.m2\repository\io\github\java-diff-utils\java-diff-utils\4.12\java-diff-
utils-4.12.jar;C:\Users\******\.m2\repository\org\jline\jline\3.21.0\jline-3.21.0.jar;C:\Users\******\.m2\repository\net\java\dev\jna\jna\5.9.0\jna-5.9.0.jar -d C:\Users\******\AppData\Local\Temp\scala-maven-plugin-compiler-b
ridge-classes3663274618389181747
last tree to typer: EmptyTree
tree position: <unknown>
tree tpe: <notype>
symbol: null
call site: <none> in <none>
== Source file context for tree position ==
error: scala.reflect.internal.FatalError:
bad constant pool index: 0 at pos: 48445
while compiling: <no file>
during phase: globalPhase=<no phase>, enteringPhase=<some phase>
library version: version 2.13.9
compiler version: version 2.13.9
reconstructed args: -bootclasspath C:\Users\******\.m2\repository\org\scala-lang\scala-library\2.13.9\scala-library-2.13.9.jar -classpath C:\Users\******\.m2\repository\net\java\dev\jna\jna\5.9.0\jna-5.9.0.jar;C:\Users\m1872
65\.m2\repository\org\scala-sbt\util-interface\1.5.6\util-interface-1.5.6.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-compiler\2.13.9\scala-compiler-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-re
flect\2.13.9\scala-reflect-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-sbt\compiler-interface\1.5.8\compiler-interface-1.5.8.jar;C:\Users\******\.m2\repository\org\jline\jline\3.21.0\jline-3.21.0.jar;C:\Users\******\.
m2\repository\io\github\java-diff-utils\java-diff-utils\4.12\java-diff-utils-4.12.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-compiler\2.13.9\scala-compiler-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\
scala-library\2.13.9\scala-library-2.13.9.jar;C:\Users\******\.m2\repository\org\scala-lang\scala-reflect\2.13.9\scala-reflect-2.13.9.jar;C:\Users\******\.m2\repository\io\github\java-diff-utils\java-diff-utils\4.12\java-diff-
utils-4.12.jar;C:\Users\******\.m2\repository\org\jline\jline\3.21.0\jline-3.21.0.jar;C:\Users\******\.m2\repository\net\java\dev\jna\jna\5.9.0\jna-5.9.0.jar -d C:\Users\******\AppData\Local\Temp\scala-maven-plugin-compiler-b
ridge-classes3663274618389181747
last tree to typer: EmptyTree
tree position: <unknown>
tree tpe: <notype>
symbol: null
call site: <none> in <none>
== Source file context for tree position ==
at scala.reflect.internal.Reporting.abort(Reporting.scala:69)
at scala.reflect.internal.Reporting.abort$(Reporting.scala:65)
at scala.reflect.internal.SymbolTable.abort(SymbolTable.scala:28)
at scala.tools.nsc.symtab.classfile.ClassfileParser$ConstantPool.errorBadIndex(ClassfileParser.scala:408)
at scala.tools.nsc.symtab.classfile.ClassfileParser$ConstantPool.getExternalName(ClassfileParser.scala:263)
at scala.tools.nsc.symtab.classfile.ClassfileParser.readParamNames$1(ClassfileParser.scala:842)
at scala.tools.nsc.symtab.classfile.ClassfileParser.parseAttribute$1(ClassfileParser.scala:848)
at scala.tools.nsc.symtab.classfile.ClassfileParser.$anonfun$parseAttributes$6(ClassfileParser.scala:925)
at scala.tools.nsc.symtab.classfile.ClassfileParser.parseAttributes(ClassfileParser.scala:1497)
at scala.tools.nsc.symtab.classfile.ClassfileParser.parseMethod(ClassfileParser.scala:625)
at scala.tools.nsc.symtab.classfile.ClassfileParser.parseClass(ClassfileParser.scala:548)
at scala.tools.nsc.symtab.classfile.ClassfileParser.$anonfun$parse$2(ClassfileParser.scala:175)
at scala.tools.nsc.symtab.classfile.ClassfileParser.$anonfun$parse$1(ClassfileParser.scala:160)
at scala.tools.nsc.symtab.classfile.ClassfileParser.parse(ClassfileParser.scala:143)
at scala.tools.nsc.symtab.SymbolLoaders$ClassfileLoader.doComplete(SymbolLoaders.scala:342)
at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.$anonfun$complete$2(SymbolLoaders.scala:249)
at scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:247)
at scala.reflect.internal.Symbols$Symbol.completeInfo(Symbols.scala:1563)
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1535)
at scala.reflect.internal.Definitions.scala$reflect$internal$Definitions$$enterNewMethod(Definitions.scala:48)
at scala.reflect.internal.Definitions$DefinitionsClass.String_$plus$lzycompute(Definitions.scala:1261)
at scala.reflect.internal.Definitions$DefinitionsClass.String_$plus(Definitions.scala:1261)
at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreMethods$lzycompute(Definitions.scala:1583)
at scala.reflect.internal.Definitions$DefinitionsClass.syntheticCoreMethods(Definitions.scala:1565)
at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode$lzycompute(Definitions.scala:1596)
at scala.reflect.internal.Definitions$DefinitionsClass.symbolsNotPresentInBytecode(Definitions.scala:1596)
at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1652)
at scala.tools.nsc.Global$Run.<init>(Global.scala:1236)
at scala.tools.nsc.Driver.doCompile(Driver.scala:47)
at scala.tools.nsc.MainClass.doCompile(Main.scala:30)
at scala.tools.nsc.Driver.process(Driver.scala:68)
at scala.tools.nsc.Main.process(Main.scala)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at sbt.internal.inc.RawCompiler.getReporter$1(RawCompiler.scala:56)
at sbt.internal.inc.RawCompiler.apply(RawCompiler.scala:77)
at sbt_inc.SbtIncrementalCompiler.getCompiledBridgeJar(SbtIncrementalCompiler.java:301)
at sbt_inc.SbtIncrementalCompiler.<init>(SbtIncrementalCompiler.java:71)
at scala_maven.ScalaCompilerSupport.incrementalCompile(ScalaCompilerSupport.java:354)
at scala_maven.ScalaCompilerSupport.compile(ScalaCompilerSupport.java:122)
at scala_maven.ScalaCompilerSupport.doExecute(ScalaCompilerSupport.java:89)
at scala_maven.ScalaMojoSupport.execute(ScalaMojoSupport.java:305)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:283)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:226)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:407)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:348)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.698 s
[INFO] Finished at: 2023-10-01T14:00:04-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal net.alchim31.maven:scala-maven-plugin:4.5.6:compile (default) on project karate-gatling: Execution default of goal net.alchim31.maven:scala-maven-plugin:4.5.6:compile failed.: CompileFailed -> [Hel
p 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
我在自己的空手道测试自动化项目中遇到了同样的错误,我希望这个示例能够帮助我解决这个问题。我不熟悉加特林,并且非常希望能提供一些关于这里出了什么问题的线索。谢谢你。
更新:根据 Peter Thomas 的建议,我尝试编译此处找到的加特林示例项目:https://github.com/karatelabs/karate/tree/master/examples/gadling
我必须将 karate.version 属性和 karate-gadling 依赖项版本更新为 1.4.0(这是我在自己的项目中使用的版本)。
我还必须添加 scala-library 依赖项。
这是示例中的 pom 文件,其中包含我的更改:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.intuit.karate.examples</groupId>
<artifactId>examples-gatling</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>11</java.version>
<maven.compiler.version>3.6.0</maven.compiler.version>
<!-- please change this when running locally -->
<karate.version>1.4.0</karate.version>
<gatling.plugin.version>4.1.1</gatling.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-gatling</artifactId>
<version>1.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.9</version>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.version}</version>
<configuration>
<encoding>UTF-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgument>-Werror</compilerArgument>
</configuration>
</plugin>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.5.6</version>
<executions>
<execution>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<args>
<arg>-Jbackend:GenBCode</arg>
<arg>-Jdelambdafy:method</arg>
<arg>-target:jvm-1.8</arg>
<arg>-deprecation</arg>
<arg>-feature</arg>
<arg>-unchecked</arg>
<arg>-language:implicitConversions</arg>
<arg>-language:postfixOps</arg>
</args>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>${gatling.plugin.version}</version>
<configuration>
<simulationsFolder>src/test/java</simulationsFolder>
<includes>
<include>mock.CatsKarateSimulation</include>
</includes>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
我在其他项目中遇到了与之前相同的错误。
根据下面 Peter Thomas 的评论,我将 Open JDK 版本从最新的 (21) 更改为版本 13。该项目现在已成功编译并运行。