我对编程非常陌生,我已经在Selenium中创建了一些简短的测试用例,需要将它们提交到存储库中,以便其他人进行提取和测试。我正在寻找一种方法来推送该项目及其jar,以便打开该项目的人已经导入了jar,而我的代码不会引发很多错误。
这些是我必须手动导入的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'
}
但是然后的问题是由于某种原因我无法运行测试。我真的很想了解更多有关如何更好地为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/