4 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
正如屏幕截圖所示,Gradle 嘗試解析名為 的依賴項(xiàng)com.sikulix:${sikulix.libs}:1.1.0
。當(dāng)然,這里有一個(gè)名為 的占位符${sikulix.libs}
尚未被替換。
占位符實(shí)際上是在sikuli 的 pom 文件的Maven 配置文件中定義的。相關(guān)部分如下:
<profiles>
? ? <profile>
? ? ? ? <id>Windows</id>
? ? ? ? <activation>
? ? ? ? ? ? <os>
? ? ? ? ? ? ? ? <family>windows</family>
? ? ? ? ? ? </os>
? ? ? ? </activation>
? ? ? ? <properties>
? ? ? ? ? ? <sikulix.libs>sikulixlibswin</sikulix.libs>
? ? ? ? </properties>
? ? </profile>
? ? <profile>
? ? ? ? <id>Unix</id>
? ? ? ? <activation>
? ? ? ? ? ? <os>
? ? ? ? ? ? ? ? <family>unix</family>
? ? ? ? ? ? </os>
? ? ? ? </activation>
? ? ? ? <properties>
? ? ? ? ? ? <sikulix.libs>sikulixlibslux</sikulix.libs>
? ? ? ? </properties>
? ? </profile>
? ? <profile>
? ? ? ? <id>Mac</id>
? ? ? ? <activation>
? ? ? ? ? ? <os>
? ? ? ? ? ? ? ? <family>mac</family>
? ? ? ? ? ? </os>
? ? ? ? </activation>
? ? ? ? <properties>
? ? ? ? ? ? <sikulix.libs>sikulixlibsmac</sikulix.libs>
? ? ? ? </properties>
? ? </profile>
</profiles>
<!-- ... -->
<dependency>
? ? <groupId>com.sikulix</groupId>
? ? <artifactId>${sikulix.libs}</artifactId>
? ? <version>${project.version}</version>
</dependency>
不幸的是,Gradle 不支持 Maven 配置文件,因此您必須自己創(chuàng)建替換規(guī)則來(lái)修復(fù)它。你可以這樣做:
configurations.all {
? ? resolutionStrategy.eachDependency { DependencyResolveDetails details ->
? ? ? ? if (details.requested.name == '${sikulix.libs}') {
? ? ? ? ? ? def os = org.gradle.internal.os.OperatingSystem.current()
? ? ? ? ? ? def targetName
? ? ? ? ? ? if (os.isWindows()) {
? ? ? ? ? ? ? ? targetName = 'sikulixlibswin'
? ? ? ? ? ? } else if (os.isUnix()) {
? ? ? ? ? ? ? ? targetName = 'sikulixlibslux'
? ? ? ? ? ? } else if (os.isMacOsX()) {
? ? ? ? ? ? ? ? targetName = 'sikulixlibsmac'
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? throw new GradleException("Unknow operating system for determining the sikulix distribution")
? ? ? ? ? ? }
? ? ? ? ? ? details.useTarget group: details.requested.group, name: targetName, version: details.requested.version
? ? ? ? ? ? details.because 'The Maven dependency is relying on profiles to select the correct module name for the current operating system'
? ? ? ? }
? ? }
}
如果您使用的是 1.1.0 版本,您可能還需要為名為 的傳遞依賴項(xiàng)之一定義一個(gè)額外的 Maven 存儲(chǔ)庫(kù)jxgrabkey。該存儲(chǔ)庫(kù)也在 pom 中定義,但不會(huì)被 Gradle 自動(dòng)使用。你可以這樣添加:
repositories {
? ? maven {
? ? ? ? url = 'http://mvn.is.inf.uni-due.de:8081/nexus/content/repositories/atunes-dependencies/'
? ? }
}
但如果你升級(jí)到最新的1.1.1,就沒有必要了。

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
這樣對(duì)我有用
dependencies {
...
compile files('sikulifolder/sikulixapi.jar')
...
}
sikulifolder - 是我的項(xiàng)目目錄中包含 jar 的文件夾。并且不要忘記依賴順序很重要。例如,我在最后一個(gè)硒依賴項(xiàng)之前設(shè)置它。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
Maven還有一個(gè)要轉(zhuǎn)換的id:
<dependencies>
<dependency>
<groupId>testName</groupId>
<artifactId>testName</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
將使用以下表示法轉(zhuǎn)換為 Gradle:
dependencies {
implementation 'testName:testName:1.1.1'
}
還嘗試使用實(shí)現(xiàn)而不是編譯。2018 年之后已棄用語(yǔ)法。
如果此更改后構(gòu)建未成功,請(qǐng)嘗試使用api作為聲明而不是實(shí)現(xiàn)。前任。api 'com.sikulix:sikulixapi:1.1.0'
畢竟,如果適用的話更新庫(kù)是一個(gè)不錯(cuò)的選擇。
希望對(duì)您有幫助!

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
嘗試添加額外的 Maven 存儲(chǔ)庫(kù):
repositories {
jcenter()
mavenCentral()
maven {
url 'https://repo.spring.io/snapshot/'
}
}
并為 sikuli 添加分組
dependencies {
compile group: 'org.sikuli', name: 'sikuli-api', version: '1.1.0'
}
添加回答
舉報(bào)