繁体   English   中英

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

[英]Selecting the right dependencies for Selenium on Gradle

我对编程非常陌生,我在 Selenium 中创建了一些简短的测试用例,需要将它们提交到存储库以供其他人提取和测试。 我正在寻找一种能够推送此项目及其 jar 的方法,以便打开它的人已经导入了 jar,并且我的代码不会抛出一堆错误。

在此处输入图片说明

这些是我必须手动导入才能或我的测试运行的 jars。

我还尝试创建一个 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'
}

但问题是由于某种原因我无法运行我的测试。 在此处输入图片说明

我真的很想了解更多关于如何为 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
            }
        }
    }

输入以下命令以在 artifactory 中发布您的构建
gradlew clean build -Djar.version=1.0.0

gradlew artifactoryPublish -Djar.version =1.0.0

它将在 artifactory 中发布您的 jars,而其他人只需执行 gradle refresh 即可获取 jars。

每当您推送到 github 时,您都可以创建一个管道来部署 jar。

然后像往常一样在您的代码中,您可以使用 import 语句来使用 jars,并且您的测试应该运行良好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM