java - 为Gradle上的Selenium选择正确的依赖项

标签 java git selenium gradle

我对编程非常陌生,我已经在Selenium中创建了一些简短的测试用例,需要将它们提交到存储库中,以便其他人进行提取和测试。我正在寻找一种方法来推送该项目及其jar,以便打开该项目的人已经导入了jar,而我的代码不会引发很多错误。
enter image description here
这些是我必须手动导入的jar才能运行我的测试。
我还尝试创建了gradle项目(能解决我的问题吗?)。
我只需要提及“编译组:'org.seleniumhq.selenium',名称:'selenium-java',版本:'3.141.59'”吗?
这是我在build.gradle文件上列出我的依赖项的地方

plugins {
    id 'java'
}

group 'org.Programming'

version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {

    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    compile group: 'io.cucumber', name: 'cucumber-java', version: '5.6.0'
    testCompile group: 'io.cucumber', name: 'cucumber-junit', version: '5.6.0'
    testCompile group: 'org.hamcrest', name: 'hamcrest', version: '2.2'
}
但是然后的问题是由于某种原因我无法运行测试。
enter image description here
我真的很想了解更多有关如何更好地为git组织项目依赖项的信息。请帮忙!

最佳答案

您尚未使用Java JRE位置,因为我可以看到Java包未出现在外部库下。对于您手动导入的其他 jar
https://jfrog.com/artifactory/start-free/中创建一个Aritifactory。
在build.gradle中使用以下代码

buildscript {
    repositories {
        maven {
            url 'YourArtifactoryURL'
            credentials {
                username = "YourUserName"
                password = 'YourPassword'
            }
        }

    }
    dependencies {
        //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4+"
    }
}

allprojects {
    apply plugin: "com.jfrog.artifactory"
}

group = 'FolderStrucinArtifactoryeg. com.test.in'
def ver = System.getProperty("jar.version")
version = "$ver"

apply plugin: 'java-library'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'com.jfrog.artifactory'



def artifactory_password = 'YourArtifactoryPassword'
def artifactory_user = "yourArtifactoryusername"
def artifactory_contextUrl = "YourArtifactoryURL"

configurations.all {
    // Check for snapshot updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
jar {from sourceSets.test.output}

task testJar(type: Jar) {
//    classifier = 'tests'
    from sourceSets.test.output

    from('src/test/java') {
        include '/**/*.json'
    }
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from tasks.javadoc.destinationDir
}

task sourcesJar(type: Jar) {
    from sourceSets.test.allSource
    classifier = 'sources'
}


artifacts {
    archives testJar
    archives javadocJar
    //archives sourcesJar
}


repositories {

    repositories {
        maven {
            url "ArtifactoryUrLwith1stRepokey"
        }
        maven {
            url "ArtifactoryUrLwith2ndRepokey"
        }

    }
}



dependencies {
    #enter your dependencies here
}





    artifactory {
        contextUrl = "${artifactory_contextUrl}"
        //The base Artifactory URL if not overridden by the publisher/resolver
        publish {
            repository {
                repoKey = 'YourRepokeyinArtifactory'
                username = "${artifactory_user}"
                password = "${artifactory_password}"
                mavenCompatible = true

            }
            defaults {
                publications('mavenJava')
                publishBuildInfo = true
                publishArtifacts = true
                publishPom = true
            }


        }
        resolve {
            repository {
                repoKey = 'yourrepositoryfolderinartifactory'
                username = "${artifactory_user}"
                password = "${artifactory_password}"
                maven = true

            }
        }
    }
    publishing {
        publications {
            mavenJava(MavenPublication) {
                groupId = "$group"
                artifactId = "$rootProject.name"
                version = "${ver}"
                from components.java
                artifact jar
                artifact javadocJar
                artifact sourcesJar
            }
        }
    }
输入以下命令以在 Artifact 中发布构建
gradlew clean build -Djar.version = 1.0.0
gradlewartifactoryPublish -Djar.version = 1.0.0
它将以人工方式发布您的jar,其他人只需进行gradle更新即可获取jar。
每当推送到github时,您都可以创建管道来部署jar。
然后,像往常一样,在您的代码中,可以使用import语句来使用jar,并且Test应该可以正常运行。

关于java - 为Gradle上的Selenium选择正确的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64626090/

相关文章:

java - 我创建了一个页面对象模型,但我的登录页面为空。我该如何解决这个问题?

java - 使用WindowManager添加 View 时如何处理所有按键事件?

java - 员工计划。 JAVA基础知识

linux - 在 Debian 上使用 qtcreator 的 QSerialPort 问题

git - 从 git 存储库历史记录中删除文件

java - ChromeDriver Remote - 使用 browserstack 禁用通知

java - 使用两个线程写入/读取 Vector(或 ArrayList)

java - Spring JDBC 与普通 JDBC 的区别?

git - 确定目录中是否有任何文件更改为最新的 Git 提交

java - Selenium 过时元素引用异常