Browser 在默认浏览器中打开url的渐变任务

Browser 在默认浏览器中打开url的渐变任务,browser,task,gradle,Browser,Task,Gradle,如何从gradle任务在浏览器中打开url?类似的操作应该可以: task openUrlInBrowser { doLast { java.awt.Desktop.desktop.browse "http://www.google.com".toURI() } } 然后跑 gradle showReport 请参阅上的信息。我从中创建了一个功能,以支持windows和mac def browse(path) { def os = org.gradle.in

如何从gradle任务在浏览器中打开url?

类似的操作应该可以:

task openUrlInBrowser {
   doLast {
       java.awt.Desktop.desktop.browse "http://www.google.com".toURI()
   }
}
然后跑

gradle showReport
请参阅上的信息。

我从中创建了一个功能,以支持windows和mac

def browse(path) {
    def os = org.gradle.internal.os.OperatingSystem.current()
    if (os.isWindows()) {
        exec { commandLine 'cmd', '/c', "start $path" }
    } else if (os.isMacOsX()) {
        exec { commandLine 'open', "$path" }
    }
}
用法示例:

task browseTest {
    doLast {
        def file = project.file('build/reports/tests/testDebugUnitTest/index.html')
        browse file
        browse "https://stackoverflow.com/questions/14847296/gradle-task-to-open-a-url-in-the-default-browser"
    }
}

非常简单,但在Gradle4.10.3中,java.awt.Desktop.getDesktop(Desktop.java:142)的
java.awt.HeadlessException和
gradlew.bat
:(不工作,至少在Mac的Java12中:“>没有这样的属性:浏览类:java.awt.Desktop”你好Benjamin,我可以重新加载浏览器选项卡而不是打开新的选项卡吗?获取错误:
Process'command'open''以非零退出值1完成
@ChadBingham什么是上下文?你可以从终端运行相同的命令吗?你在mac上吗?是的,我在mac上。为了解决这个问题,我使用了
任务(类型:Exec)
,那么这种语法非常有效。
task browseTest {
    doLast {
        def file = project.file('build/reports/tests/testDebugUnitTest/index.html')
        browse file
        browse "https://stackoverflow.com/questions/14847296/gradle-task-to-open-a-url-in-the-default-browser"
    }
}