Gradle任务运行Nashorn JavaScript

Gradle task to run Nashorn JavaScript

本文关键字:JavaScript Nashorn 运行 任务 Gradle      更新时间:2023-09-26

java -Djava.library.path=lib -jar lib/avatar-js.jar helloWorld.js的启动是否有类似的gradle/groovy代码,即用Java 8创建.js文件并传递一些libs

或使用定义的依赖

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
repositories {
    maven {
        url "https://maven.java.net/content/repositories/public/"
    }
}
dependencies {
    compile "com.oracle:avatar-js:0.10.25-SNAPSHOT"
    compile "com.oracle:libavatar-js-win-x64:0.10.25-SNAPSHOT"
}
task copyLibs(type: Copy) {
    from configurations.compile
    into 'lib'
}
sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'src '
        }
    }
}

我发现的唯一相关文档(在Gradle任务中构建并运行一个jar)是第45章中的一行。应用程序插件

 startScripts   jar     CreateStartScripts  Creates OS specific scripts to run the project as a JVM application.

应用程序插件依赖于Java,无法为JavaScript或C/C定义任务++CreateStartScripts需要String mainClassName(不是要运行的文件)

来源:https://github.com/PaulVI/NashornSandbox

这里有两个将运行服务器的分级任务:

task runHelloWorld(type: Exec) {
    commandLine 'java', '-Djava.library.path=lib', '-jar', 'lib/avatar-js.jar', 'helloWorld.js'
}
task runHelloWorld2(type: JavaExec) {
    args 'helloWorld.js'
    main 'com.oracle.avatar.js.Server'
    systemProperties 'java.library.path':'lib'
    classpath 'lib/avatar-js.jar'
}