browserstack-java-sdk
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency> <groupId>com.browserstack</groupId> <artifactId>browserstack-java-sdk</artifactId> <version>1.32.4</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?> <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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.browserstack</groupId> <artifactId>browserstack-java-sdk</artifactId> <name>browserstack-java-sdk</name> <version>1.32.4</version> <description>Java SDK for Browserstack Selenium Tests</description> <url>https://www.browserstack.com</url> <developers> <developer> <name>BrowserStack</name> <email>support@browserstack.com</email> <organization>BrowserStack</organization> <organizationUrl>https://www.browserstack.com</organizationUrl> </developer> </developers> <licenses> <license> <name>BrowserStack License</name> <url>${project.baseUri}LICENSE.txt</url> </license> </licenses> <scm> <connection>scm:git:git@github.com:browserstack/browserstack-javaagent.git</connection> <developerConnection>scm:git:git@github.com:browserstack/browserstack-javaagent.git</developerConnection> <url>https://github.com/browserstack/browserstack-javaagent</url> </scm> <build> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.1</version> </extension> </extensions> <pluginManagement> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.4.0</version> <executions> <execution> <id>proguard</id> <phase>package</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>com.guardsquare</groupId> <artifactId>proguard-base</artifactId> <version>${version.proguard-base}</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <includeDependency>false</includeDependency> <injar>${project.build.finalName}.${project.packaging}</injar> <outjar>${project.build.finalName}.${project.packaging}</outjar> <libs> <lib>${java.home}/lib/rt.jar</lib> <lib>${java.home}/lib/jce.jar</lib> <lib>${java.home}/lib/ext/sunjce_provider.jar</lib> </libs> <options> <option>-dontskipnonpubliclibraryclassmembers</option> <option>-allowaccessmodification</option> <option>-adaptclassstrings</option> <option>-adaptresourcefilenames **.properties</option> <option>-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF</option> <option>-verbose</option> <option>-dontnote</option> <option>-dontwarn</option> <option>-keepattributes *Annotation*</option> <option>-keepattributes Signature,InnerClasses,EnclosingMethod</option> <option>-ignorewarnings</option> <option>-keepclasseswithmembers class *</option> <option>-keepclasseswithmembers,allowshrinking public final @interface * { public private protected static final volatile transient synthetic <fields>; }</option> <option>-keepclasseswithmembers public class * { public static void main(java.lang.String[]); }</option> <option>-keep public class * extends java.applet.Applet</option> <option>-keep public class * extends javax.servlet.Servlet</option> <option>-keep public class * extends javax.microedition.midlet.MIDlet</option> <option>-keep public class * extends javax.tv.xlet.Xlet</option> <option>-keep public class org.slf4j.** { *; }</option> <option>-keep class org.gradle.** { *; }</option> <option>-keep class org.apache.logging.** { *; }</option> <option>-keep public class ch.qos.logback.** { *; }</option> <option>-keep public class * { public protected <fields>; public protected <methods>; }</option> <option>-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }</option> <option>-keepclassmembers class * extends java.io.Serializable { static final long serialVersionUID; static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }</option> <option>-keep class * extends java.beans.BeanInfo</option> <option>-keep class * { void set*(***); void set*(int,***); boolean is*(); boolean is*(int); *** get*(); *** get*(int); }</option> <option>-keep class * extends java.sql.Driver</option> <option>-keep class * extends javax.swing.plaf.ComponentUI { public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent); }</option> <option>-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * { native <methods>; }</option> <option>-keepclassmembers,allowshrinking class * { java.lang.Class class$(java.lang.String); java.lang.Class class$(java.lang.String,boolean); }</option> <option>-keepclassmembers,allowshrinking class * { @proguard.annotation.KeepName <fields>; @proguard.annotation.KeepName <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepClassMemberNames class * { <fields>; <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicClassMemberNames class * { public <fields>; public <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicProtectedClassMemberNames class * { public protected <fields>; public protected <methods>; }</option> <option>-keep @interface com.browserstack.monitoring.Measured</option> <option>-keep enum com.browserstack.monitoring.Events { *; }</option> <option>-keep enum com.browserstack.monitoring.Stage { *; }</option> <option>-keepclassmembers class * { @com.browserstack.monitoring.Measured *; }</option> <option>-keep,allowshrinking @proguard.annotation.KeepName class *</option> <option>-keep class io.grpc.** { *; }</option> </options> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-XDignore.symbol.file</arg> </compilerArgs> <fork>true</fork> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>aspectj-maven-plugin</artifactId> <executions> <execution> <goals> <goal>compile</goal> <goal>test-compile</goal> </goals> </execution> </executions> <configuration> <source>1.8</source> <target>1.8</target> <complianceLevel>1.8</complianceLevel> </configuration> </plugin> <plugin> <artifactId>maven-shade-plugin</artifactId> <version>3.5.0</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-transform-maven-shade-plugin-extensions</artifactId> <version>0.1.0</version> </dependency> </dependencies> <configuration> <relocations> <relocation> <pattern>ch.qos.logback</pattern> <shadedPattern>browserstack.shaded.ch.qos.logback</shadedPattern> </relocation> <relocation> <rawString>true</rawString> <pattern>^logback.configurationFile$</pattern> <shadedPattern>browserstack.shaded.logback.configurationFile</shadedPattern> </relocation> <relocation> <rawString>true</rawString> <pattern>^logback(-test)?.xml$</pattern> <shadedPattern>browserstack-logback$1.xml</shadedPattern> </relocation> <relocation> <rawString>true</rawString> <pattern>^java:comp/env/logback/configuration-resource$</pattern> <shadedPattern>java:comp/env/browserstack.shaded.logback/configuration-resource</shadedPattern> </relocation> <relocation> <rawString>true</rawString> <pattern>^java:comp/env/logback/context-name$</pattern> <shadedPattern>java:comp/env/browserstack.shaded.logback/context-name</shadedPattern> </relocation> <relocation> <pattern>org.slf4j</pattern> <shadedPattern>browserstack.shaded.org.slf4j</shadedPattern> </relocation> <relocation> <pattern>org.apache.commons</pattern> <shadedPattern>browserstack.shaded.commons</shadedPattern> </relocation> <relocation> <pattern>org.javassist</pattern> <shadedPattern>browserstack.shaded.org.javassist</shadedPattern> </relocation> <relocation> <pattern>javassist</pattern> <shadedPattern>browserstack.shaded.javassist</shadedPattern> </relocation> <relocation> <pattern>okhttp3</pattern> <shadedPattern>browserstack.shaded.okhttp3</shadedPattern> </relocation> <relocation> <pattern>okio</pattern> <shadedPattern>browserstack.shaded.okio</shadedPattern> </relocation> <relocation> <pattern>org.json</pattern> <shadedPattern>browserstack.shaded.org.json</shadedPattern> </relocation> <relocation> <pattern>org.jsoup</pattern> <shadedPattern>browserstack.shaded.org.jsoup</shadedPattern> </relocation> <relocation> <pattern>org.eclipse.jgit</pattern> <shadedPattern>browserstack.shaded.org.eclipse.jgit</shadedPattern> </relocation> <relocation> <pattern>com.github.markusbernhardt</pattern> <shadedPattern>browserstack.shaded.com.github.markusbernhardt</shadedPattern> </relocation> <relocation> <pattern>com.fasterxml.jackson</pattern> <shadedPattern>browserstack.shaded.jackson</shadedPattern> </relocation> <relocation> <pattern>com.google</pattern> <shadedPattern>browserstack.shaded.com.google</shadedPattern> </relocation> <relocation> <pattern>org.bouncycastle</pattern> <shadedPattern>browserstack.shaded.org.bouncycastle</shadedPattern> </relocation> </relocations> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> <exclude>org/testng/log4testng/*</exclude> </excludes> </filter> </filters> <transformers> <transformer /> <transformer> <manifestEntries> <Premain-Class>com.browserstack.BrowserStackJavaAgent</Premain-Class> <Agent-Class>com.browserstack.BrowserStackJavaAgent</Agent-Class> <Can-Redefine-Classes>true</Can-Redefine-Classes> <Can-Retransform-Classes>true</Can-Retransform-Classes> <Specification-Title>${project.artifactId}</Specification-Title> <Specification-Version>${project.version}</Specification-Version> <Implementation-Title>${project.artifactId}</Implementation-Title> <Implementation-Version>${project.version}</Implementation-Version> <Implementation-Vendor-Id>${project.groupId}</Implementation-Vendor-Id> </manifestEntries> </transformer> <transformer /> </transformers> <useDependencyReducedPomInJar>true</useDependencyReducedPomInJar> </configuration> </plugin> <plugin> <artifactId>maven-jar-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>empty-javadoc-jar</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>javadoc</classifier> <classesDirectory>${basedir}/javadoc</classesDirectory> </configuration> </execution> <execution> <id>empty-sources-jar</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> <configuration> <classifier>sources</classifier> <classesDirectory>${basedir}/sources</classesDirectory> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.7.0</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <artifactId>maven-gpg-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> <configuration> <protocArtifact>com.google.protobuf:protoc:3.25.3:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.68.0:exe:${os.detected.classifier}</pluginArtifact> </configuration> </plugin> </plugins> </build> <profiles> <profile> <id>java8-</id> <build> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.4.0</version> <executions> <execution> <id>proguard</id> <phase>package</phase> <goals> <goal>proguard</goal> </goals> <configuration> <libs> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar</lib> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar</lib> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar</lib> </libs> <includeDependency>false</includeDependency> <injar>browserstack-java-sdk-1.32.4.jar</injar> <outjar>browserstack-java-sdk-1.32.4.jar</outjar> <options> <option>-dontskipnonpubliclibraryclassmembers</option> <option>-allowaccessmodification</option> <option>-adaptclassstrings</option> <option>-adaptresourcefilenames **.properties</option> <option>-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF</option> <option>-verbose</option> <option>-dontnote</option> <option>-dontwarn</option> <option>-keepattributes *Annotation*</option> <option>-keepattributes Signature,InnerClasses,EnclosingMethod</option> <option>-ignorewarnings</option> <option>-keepclasseswithmembers class *</option> <option>-keepclasseswithmembers,allowshrinking public final @interface * { public private protected static final volatile transient synthetic <fields>; }</option> <option>-keepclasseswithmembers public class * { public static void main(java.lang.String[]); }</option> <option>-keep public class * extends java.applet.Applet</option> <option>-keep public class * extends javax.servlet.Servlet</option> <option>-keep public class * extends javax.microedition.midlet.MIDlet</option> <option>-keep public class * extends javax.tv.xlet.Xlet</option> <option>-keep public class org.slf4j.** { *; }</option> <option>-keep class org.gradle.** { *; }</option> <option>-keep class org.apache.logging.** { *; }</option> <option>-keep public class ch.qos.logback.** { *; }</option> <option>-keep public class * { public protected <fields>; public protected <methods>; }</option> <option>-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }</option> <option>-keepclassmembers class * extends java.io.Serializable { static final long serialVersionUID; static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }</option> <option>-keep class * extends java.beans.BeanInfo</option> <option>-keep class * { void set*(***); void set*(int,***); boolean is*(); boolean is*(int); *** get*(); *** get*(int); }</option> <option>-keep class * extends java.sql.Driver</option> <option>-keep class * extends javax.swing.plaf.ComponentUI { public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent); }</option> <option>-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * { native <methods>; }</option> <option>-keepclassmembers,allowshrinking class * { java.lang.Class class$(java.lang.String); java.lang.Class class$(java.lang.String,boolean); }</option> <option>-keepclassmembers,allowshrinking class * { @proguard.annotation.KeepName <fields>; @proguard.annotation.KeepName <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepClassMemberNames class * { <fields>; <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicClassMemberNames class * { public <fields>; public <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicProtectedClassMemberNames class * { public protected <fields>; public protected <methods>; }</option> <option>-keep @interface com.browserstack.monitoring.Measured</option> <option>-keep enum com.browserstack.monitoring.Events { *; }</option> <option>-keep enum com.browserstack.monitoring.Stage { *; }</option> <option>-keepclassmembers class * { @com.browserstack.monitoring.Measured *; }</option> <option>-keep,allowshrinking @proguard.annotation.KeepName class *</option> <option>-keep class io.grpc.** { *; }</option> </options> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.guardsquare</groupId> <artifactId>proguard-base</artifactId> <version>7.1.1</version> <scope>runtime</scope> </dependency> </dependencies> <configuration> <libs> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar</lib> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar</lib> <lib>/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar</lib> </libs> <includeDependency>false</includeDependency> <injar>browserstack-java-sdk-1.32.4.jar</injar> <outjar>browserstack-java-sdk-1.32.4.jar</outjar> <options> <option>-dontskipnonpubliclibraryclassmembers</option> <option>-allowaccessmodification</option> <option>-adaptclassstrings</option> <option>-adaptresourcefilenames **.properties</option> <option>-adaptresourcefilecontents **.properties,META-INF/MANIFEST.MF</option> <option>-verbose</option> <option>-dontnote</option> <option>-dontwarn</option> <option>-keepattributes *Annotation*</option> <option>-keepattributes Signature,InnerClasses,EnclosingMethod</option> <option>-ignorewarnings</option> <option>-keepclasseswithmembers class *</option> <option>-keepclasseswithmembers,allowshrinking public final @interface * { public private protected static final volatile transient synthetic <fields>; }</option> <option>-keepclasseswithmembers public class * { public static void main(java.lang.String[]); }</option> <option>-keep public class * extends java.applet.Applet</option> <option>-keep public class * extends javax.servlet.Servlet</option> <option>-keep public class * extends javax.microedition.midlet.MIDlet</option> <option>-keep public class * extends javax.tv.xlet.Xlet</option> <option>-keep public class org.slf4j.** { *; }</option> <option>-keep class org.gradle.** { *; }</option> <option>-keep class org.apache.logging.** { *; }</option> <option>-keep public class ch.qos.logback.** { *; }</option> <option>-keep public class * { public protected <fields>; public protected <methods>; }</option> <option>-keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }</option> <option>-keepclassmembers class * extends java.io.Serializable { static final long serialVersionUID; static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }</option> <option>-keep class * extends java.beans.BeanInfo</option> <option>-keep class * { void set*(***); void set*(int,***); boolean is*(); boolean is*(int); *** get*(); *** get*(int); }</option> <option>-keep class * extends java.sql.Driver</option> <option>-keep class * extends javax.swing.plaf.ComponentUI { public static javax.swing.plaf.ComponentUI createUI(javax.swing.JComponent); }</option> <option>-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * { native <methods>; }</option> <option>-keepclassmembers,allowshrinking class * { java.lang.Class class$(java.lang.String); java.lang.Class class$(java.lang.String,boolean); }</option> <option>-keepclassmembers,allowshrinking class * { @proguard.annotation.KeepName <fields>; @proguard.annotation.KeepName <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepClassMemberNames class * { <fields>; <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicClassMemberNames class * { public <fields>; public <methods>; }</option> <option>-keepclassmembers,allowshrinking @proguard.annotation.KeepPublicProtectedClassMemberNames class * { public protected <fields>; public protected <methods>; }</option> <option>-keep @interface com.browserstack.monitoring.Measured</option> <option>-keep enum com.browserstack.monitoring.Events { *; }</option> <option>-keep enum com.browserstack.monitoring.Stage { *; }</option> <option>-keepclassmembers class * { @com.browserstack.monitoring.Measured *; }</option> <option>-keep,allowshrinking @proguard.annotation.KeepName class *</option> <option>-keep class io.grpc.** { *; }</option> </options> </configuration> </plugin> </plugins> </build> <properties> <os.detected.bitness>64</os.detected.bitness> <os.detected.release.version>20.04</os.detected.release.version> <os.detected.release.like.ubuntu>true</os.detected.release.like.ubuntu> <os.detected.release>ubuntu</os.detected.release> <os.detected.name>linux</os.detected.name> <os.detected.release.like.debian>true</os.detected.release.like.debian> <os.detected.classifier>linux-x86_64</os.detected.classifier> <os.detected.arch>x86_64</os.detected.arch> </properties> </profile> <profile> <id>java9+</id> <build> <plugins> <plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <configuration> <libs> <lib>${java.home}/jmods/java.base.jmod</lib> </libs> </configuration> </plugin> </plugins> </build> </profile> </profiles> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.5.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> <version>3.141.59</version> <scope>provided</scope> </dependency> <dependency> <groupId>com.microsoft.playwright</groupId> <artifactId>playwright</artifactId> <version>1.28.0</version> <scope>provided</scope> <exclusions> <exclusion> <artifactId>driver-bundle</artifactId> <groupId>com.microsoft.playwright</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-core</artifactId> <version>7.8.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>gherkin</artifactId> <version>24.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>7.6.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>annotations-api</artifactId> <version>6.0.53</version> <scope>provided</scope> </dependency> </dependencies> <distributionManagement> <repository> <id>ossrh</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement> <properties> <project.build.finalName>browserstack-javaagent</project.build.finalName> <org.eclipse.jgit.version>5.13.3.202401111512-r</org.eclipse.jgit.version> <commons.lang3.version>3.11</commons.lang3.version> <maven.compiler.testTarget>${maven.compiler.testSource}</maven.compiler.testTarget> <gson.version>2.9.1</gson.version> <selenium.version>3.141.59</selenium.version> <okhttp.version>3.14.9</okhttp.version> <testng.version>7.5.1</testng.version> <playwright.version>1.28.0</playwright.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <javassist.version>3.26.0-GA</javassist.version> <maven-site-plugin.version>3.3</maven-site-plugin.version> <jackson-databind.version>2.14.2</jackson-databind.version> <version.proguard-base>7.1.1</version.proguard-base> <snakeyml.version>2.0</snakeyml.version> <logback.version>1.2.13</logback.version> <slf4j.version>1.7.36</slf4j.version> <browserstack.local.version>[1.0.9,2.0.0)</browserstack.local.version> <jackson-core.version>2.14.2</jackson-core.version> <jsoup.version>1.15.3</jsoup.version> <maven.compiler.target>${maven.compiler.source}</maven.compiler.target> <json-simple.version>1.1.1</json-simple.version> <gherkin.version>24.0.0</gherkin.version> <maven.compiler.testSource>${maven.compiler.source}</maven.compiler.testSource> <log4j.version>2.20.0</log4j.version> <cucumber.version>7.8.1</cucumber.version> </properties> </project>