如何编译 karate-gadling 示例项目?

问题描述 投票:0回答:1

我从这里下载了 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>

我在其他项目中遇到了与之前相同的错误。

karate
1个回答
0
投票

根据下面 Peter Thomas 的评论,我将 Open JDK 版本从最新的 (21) 更改为版本 13。该项目现在已成功编译并运行。

© www.soinside.com 2019 - 2024. All rights reserved.