首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Saxon s9 api没有在gradle中使用本地jars公开

Saxon s9 api没有在gradle中使用本地jars公开
EN

Stack Overflow用户
提问于 2022-03-31 09:46:13
回答 1查看 49关注 0票数 0

我想在gradle中本地包含jar文件,我已经创建了一个libs文件夹,并在那里添加了jar。jars被添加到类路径中,但我无法访问api。

我的build.gradle:

代码语言:javascript
复制
plugins {
    id 'java'
    id 'io.github.lhotari.gradle-nar-plugin' version '0.5.1'
}

group 'com.acs.contentlake.nifi'
version '1.0'

repositories {

    mavenCentral()
    gradlePluginPortal()
    maven {
        url("https://mvnrepository.com/artifact/apache-xerces/resolver")
    }
    flatDir {
        dirs 'libs'
    }
}

compileJava{
    sourceCompatibility('8')
    targetCompatibility('8')
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    implementation group: 'org.apache.nifi', name: 'nifi-api', version: '1.15.0'
    implementation group: 'org.apache.nifi', name: 'nifi-utils', version: '1.15.0'
//    implementation group: 'net.sf.saxon', name: 'Saxon-HE', version: '10.6'
    implementation group: 'xerces', name: 'xercesImpl', version: '2.9.1'
    implementation group: 'apache-xerces', name: 'resolver', version: '2.9.1'
    implementation 'org.codehaus.groovy:groovy-all:3.0.8'
//    implementation files('libs/saxon-ee-10.6.jar', 'icu4j-59.1.jar', 'jline-2.14.6.jar', 'saxon-ee-test-10.6.jar', 'saxon-sql-10.6.jar')
//    implementation fileTree(dir: 'libs', include: ['*.jar'])
//    implementation name: 'saxon-ee-10.6'
    implementation fileTree(include: ['*.jar'], dir: './libs/SaxonEE10-6J')
    testImplementation 'junit:junit:4.13.2'
    testImplementation 'org.apache.nifi:nifi-mock:1.15.0'

}

test {
    useJUnitPlatform()
}

我想使用萨克森-EE罐子,这是不可用的任何网络回购。

我不能进口

代码语言:javascript
复制
import net.sf.saxon.s9api.*;

如果我使用Saxon-HE,那么它运行的很好,但是我想使用任何web上都无法使用的授权版本。

EN

回答 1

Stack Overflow用户

发布于 2022-03-31 13:08:31

据猜测,fileTree(include: ['*.jar'], dir: './libs/SaxonEE10-6J')并没有做你认为的事情。在此,我通常尝试调试Gradle文件,创建一个打印类路径的"helloWorld“任务:

代码语言:javascript
复制
// Testing task for various Gradle debugging efforts
task helloWorld() {
  doLast {
    /*
    configurations.jsbuild.resolve().each { path ->
      println(path)
    }
     */
    println("Hello, world.")
  }
}

(其中必须取消对行的注释,并将jsbuild替换为从implementation派生的本地配置。我不认为您可以直接访问implementation类路径,因为我怀疑我是否完全理解)。

然而,我可以让这一切对你来说更容易。将其添加到repositories闭包中:

代码语言:javascript
复制
  maven { url "https://dev.saxonica.com/maven" }

然后您可以使用Maven加载EE:

代码语言:javascript
复制
    implementation 'com.saxonica:Saxon-EE:10.6'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71690361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档