GVKun编程网logo

使用gradle“运行”任务运行主要方法(gradle怎么运行)

14

本文将为您提供关于使用gradle“运行”任务运行主要方法的详细介绍,我们还将为您解释gradle怎么运行的相关知识,同时,我们还将为您提供关于Flutter“正在运行Gradle任务'assembl

本文将为您提供关于使用gradle“运行”任务运行主要方法的详细介绍,我们还将为您解释gradle怎么运行的相关知识,同时,我们还将为您提供关于Flutter“正在运行 Gradle 任务 'assembleDebug'...”(启动 Gradle 守护进程)永远不会结束 日志:、Gradle之使用Gradle的命令行、Gradle之尝试使用Gradle、Gradle使用gretty插件运行web项目的实用信息。

本文目录一览:

使用gradle“运行”任务运行主要方法(gradle怎么运行)

使用gradle“运行”任务运行主要方法(gradle怎么运行)

我想main通过gradle任务运行我的方法

这是我通过cmd运行的方式:

java -cp RTMonitor.jar com.bla.MainRunner first_arg

应该如何写成gradle?

run {    args += [''java -cp RTMonitor.jar com.bla.MainRunner first_arg'']}

更新资料

我努力了

task myRun(type: JavaExec) {    classpath configurations.main    main = "com.bla.runners.StatsLogGenerator"    args "arg1", "arg2"}

我得到:

Error:(71, 0) Could not find property ''main'' on configuration container.

the I have tried:    task myRun(type: JavaExec) {        classpath "configurations.main"        main = "com.bla.runners.StatsLogGenerator"        args "arg1", "arg2"    }

我得到一个错误:

FAILURE: Build failed with an exception.17:49:21.855 [ERROR] [org.gradle.BuildExceptionReporter] 17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task '':myRun''.17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] > Process ''command ''/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'''' finished with non-zero exit value 117:49:21.864 [ERROR] [org.gradle.BuildExceptionReporter] 17:49:21.865 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:17:49:21.866 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task '':myRun''.17:49:21.867 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:361)17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter]    at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:31)

但是当我通过Intellij运行时,每个thig都可以正常工作

答案1

小编典典

最简单的方法可能是使用应用程序插件。添加apply plugin:''application''到您的build.gradle并设置mainClassName =com.bla.MainRunner。要将参数添加到主类,请修改运行任务并编辑args属性

run {  args += ''first_arg''}

类路径是从主sourceSet中自动获取的,如果需要其他类,则可以编辑运行任务的类路径属性。

如果需要更多自定义,则可以这样定义JavaExec类型的任务:

task myRun(type: JavaExec) {  classpath sourceSets.main.runtimeClasspath  main = "com.bla.MainRunner"  args "arg1", "arg2"}

Flutter“正在运行 Gradle 任务 'assembleDebug'...”(启动 Gradle 守护进程)永远不会结束 日志:

Flutter“正在运行 Gradle 任务 'assembleDebug'...”(启动 Gradle 守护进程)永远不会结束 日志:

如何解决Flutter“正在运行 Gradle 任务 ''assembleDebug''...”(启动 Gradle 守护进程)永远不会结束 日志:?

当我运行 Flutter run -v 时。

预期结果: 组装调试过程结束,应用程序在 Flutter run

后准备就绪

实际结果:

卡在Running Gradle task ''assembleDebug''...上 和 Starting a Gradle Daemon,"N (ANY NUMBER)" busy Daemons Could not be reused,use --status for details 并且运行过程永无止境!

日志:

Flutter run -v

[  +56 ms] executing: [C:\src\Flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%H
[ +185 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%H
[   +1 ms] f4abaa0735eba4dfd8f33f73363911d63931fe03
[        ] executing: [C:\src\Flutter/] git tag --points-at f4abaa0735eba4dfd8f33f73363911d63931fe03
[  +47 ms] Exit code 0 from: git tag --points-at f4abaa0735eba4dfd8f33f73363911d63931fe03
[        ] 2.2.3
[   +5 ms] executing: [C:\src\Flutter/] git rev-parse --abbrev-ref --symbolic @{u}
[  +35 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[        ] origin/stable
[        ] executing: [C:\src\Flutter/] git ls-remote --get-url origin
[  +31 ms] Exit code 0 from: git ls-remote --get-url origin
[        ] https://github.com/Flutter/Flutter.git
[  +95 ms] executing: [C:\src\Flutter/] git rev-parse --abbrev-ref HEAD
[  +35 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[        ] stable
[  +54 ms] Artifact Instance of ''AndroidGenSnapshotArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''AndroidInternalBuildArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''IOSEngineArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''FlutterWebSdk'' is not required,skipping update.
[   +2 ms] Artifact Instance of ''WindowsEngineArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''MacOSEngineArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''LinuxEngineArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''LinuxFuchsiaSDKArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''MacOSFuchsiaSDKArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''FlutterRunnerSDKArtifacts'' is not required,skipping update.
[        ] Artifact Instance of ''FlutterRunnerDebugSymbols'' is not required,skipping update.
[  +42 ms] executing: C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe devices -l
[  +37 ms] List of devices attached
           emulator-5554          device product:sdk_gphone_x86_arm model:sdk_gphone_x86_arm device:generic_x86_arm transport_id:1
[   +4 ms] C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell getprop
[  +38 ms] Artifact Instance of ''AndroidInternalBuildArtifacts'' is not required,skipping update.
[   +1 ms] Artifact Instance of ''WindowsEngineArtifacts'' is not required,skipping update.
[  +65 ms] Skipping pub get: version match.
[  +77 ms] Generating C:\Users\Raven\AndroidStudioProjects\testapp\android\app\src\main\java\io\Flutter\plugins\GeneratedpluginRegistrant.java
[  +37 ms] ro.hardware = ranchu
[   +9 ms] Using hardware rendering with device sdk gphone x86 arm. If you notice graphics artifacts,consider enabling software rendering with "--enable-software-rendering".
[  +18 ms] Initializing file store
[   +8 ms] Skipping target: gen_localizations
[   +5 ms] complete
[   +3 ms] Launching lib\main.dart on sdk gphone x86 arm in debug mode...
[   +3 ms] C:\src\Flutter\bin\cache\dart-sdk\bin\dart.exe --disable-dart-dev C:\src\Flutter\bin\cache\artifacts\engine\windows-x64\frontend_server.dart.snapshot --sdk-root
C:\src\Flutter\bin\cache\artifacts\engine\common\Flutter_patched_sdk/ --incremental --target=Flutter --debugger-module-names --experimental-emit-debug-Metadata -DFlutteR_WEB_AUTO_DETECT=true --output-dill
C:\Users\Raven\AppData\Local\Temp\Flutter_tools.9d1246b8\Flutter_tool.faedfc72\app.dill --packages C:\Users\Raven\AndroidStudioProjects\testapp\.dart_tool\package_config.json -Ddart.vm.profile=false -Ddart.vm.product=false
--enable-asserts --track-widget-creation --filesystem-scheme org-dartlang-root --initialize-from-dill build\3c113a45063dc6628e68a4111abcacad.cache.dill.track.dill --enable-experiment=alternative-invalidation-strategy
[  +12 ms] executing: C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe -s emulator-5554 shell -x logcat -v time -t 1
[   +5 ms] <- compile package:testapp/main.dart
[  +34 ms] --------- beginning of main
           07-22 21:52:26.801 W/Binder:217_2(  217): type=1400 audit(0.0:151): avc: denied { read } for name="wakeup35" dev="sysfs" ino=19023 scontext=u:r:system_suspend:s0 tcontext=u:object_r:sysfs:s0 tclass=dir permissive=0
[   +8 ms] executing: C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe version
[  +28 ms] Android Debug Bridge version 1.0.41
           Version 30.0.5-6877874
           Installed as C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe
[   +1 ms] executing: C:\Users\Raven\AppData\Local\Android\sdk\platform-tools\adb.exe start-server
[  +24 ms] Building APK
[  +13 ms] Running Gradle task ''assembleDebug''...
[   +5 ms] Using gradle from C:\Users\Raven\AndroidStudioProjects\testapp\android\gradlew.bat.
[  +10 ms] executing: C:\Program Files\Android\Android Studio\jre\bin\java -version
[ +105 ms] Exit code 0 from: C:\Program Files\Android\Android Studio\jre\bin\java -version
[        ] openjdk version "11.0.8" 2020-07-14
           OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
           OpenJDK 64-Bit Server VM (build 11.0.8+10-b944.6842174,mixed mode)
[   +1 ms] executing: [C:\Users\Raven\AndroidStudioProjects\testapp\android/] C:\Users\Raven\AndroidStudioProjects\testapp\android\gradlew.bat -Pverbose=true -Ptarget-platform=android-x86
-Ptarget=C:\Users\Raven\AndroidStudioProjects\testapp\lib\main.dart -Pdart-defines=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ== -Pdart-obfuscation=false -Ptrack-widget-creation=true -Ptree-shake-icons=false
-Pfilesystem-scheme=org-dartlang-root assembleDebug
[+3365 ms] Starting a Gradle Daemon,129 busy Daemons Could not be reused,use --status for details
[+3591 ms] Starting a Gradle Daemon,130 busy Daemons Could not be reused,use --status for details
[+3499 ms] Starting a Gradle Daemon,131 busy Daemons Could not be reused,use --status for details
[+3500 ms] Starting a Gradle Daemon,132 busy Daemons Could not be reused,133 busy Daemons Could not be reused,134 busy Daemons Could not be reused,135 busy Daemons Could not be reused,use --status for details
[+3498 ms] Starting a Gradle Daemon,136 busy Daemons Could not be reused,137 busy Daemons Could not be reused,138 busy Daemons Could not be reused,139 busy Daemons Could not be reused,140 busy Daemons Could not be reused,use --status for details
Terminate batch job (Y/N)? Y

Flutter analyze

Analyzing testapp...
No issues found! (ran in 1.0s)

Flutter doctor -v

[√] Flutter (Channel stable,2.2.3,on Microsoft Windows [Version 10.0.18363.778],locale en-US)
    • Flutter version 2.2.3 at C:\src\Flutter
    • Framework revision f4abaa0735 (3 weeks ago),2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\Raven\AppData\Local\Android\sdk
    • Platform android-30,build-tools 30.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)
    X Android license status unkNown.
      Run `Flutter doctor --android-licenses` to accept the SDK licenses.
      See https://Flutter.dev/docs/get-started/install/windows#android-setup for more details.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-Flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6842174)

[√] VS Code (version 1.58.2)
    • VS Code at C:\Users\Raven\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.24.0

[√] Connected device (3 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 91.0.4472.164
    • Edge (web)                  • edge          • web-javascript • Microsoft Edge 91.0.864.67

! Doctor found issues in 1 category.

更新:

当我尝试运行 Flutter doctor 所说的命令时,还有另一个问题:

Flutter doctor --android-licenses

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
        at com.android.repository.api.SchemaModule$SchemaModuLeversion.<init>(SchemaModule.java:156)
        at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
        at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
        at com.android.sdklib.tool.sdkmanager.sdkmanagerCli.main(sdkmanagerCli.java:73)
        at com.android.sdklib.tool.sdkmanager.sdkmanagerCli.main(sdkmanagerCli.java:48)
Caused by: java.lang.classNotFoundException: javax.xml.bind.annotation.XmlSchema
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.classLoader.loadClass(ClassLoader.java:522)
        ... 5 more

解决方法

这里有一个问题:

X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.

我不知道这是否是导致问题的原因,但您需要运行此命令并接受许可证才能正常工作。

flutter doctor --android-licenses

看到这个: flutter doctor --android-licenses gives a java error

Gradle之使用Gradle的命令行

Gradle之使用Gradle的命令行

列出项目中所有可用的task

在上一blog中展示了如何通过gradle命令运行一个指定的task。要运行一个task,需要知道它的具体名字。如何可以在不用看源代码的情况下知道所有可用的task,是不是很棒?Gradle提供了一个叫作tasks的帮助任务来帮助你查看构建脚本和显示每个可以使用的task,包括描述该task作用的信息。以quiet模式运行gradle tasks的输入结果如下:

$ gradle -q tasks

关于输出,有几点需要说明。Gradle提供了任务组的概念,你可以把它看作是多个task的集群。每个构建脚本都会默认暴露Help tasks任务组如果某个task不属于一个任务组,那么它就会显示在Other tasks中。在这里可以找到groupTherapy任务。以后我们会学习如何把task添加到一个任务组中。

你可以会想,在构建脚本中定义的其他task去哪了?在输出的底部,你会看到一条提示,要获得关于task的更多信息,请使用--all选项

$ gradle -q tasks --all

--all选项是查看task执行顺序的好办法,为了有更好的可读性,依赖任务以缩进方式有序地显示在根task的下面。

任务执行

在之前的例子中,通过给命令gradle添加一个参数来执行指定的任务。Gradle的命令行实现会确保任务以及它们的所有依赖都被执行。你也可以在命令行中通过参数定义,一次执行多个任务。如例:

$ gradle yayGradle0 groupTherapy

任务通常只会执行一次,无论它们是在命令行中指定的还是作为另一个任务的依赖。

毫无意外,和运行gradle groupTherapy时的输出一样。正确的顺序被保存并且每个任务只执行一次

任务名字缩写

Gradle最有用的特性之一就是能够以驼峰式的缩写在命令行上运行任务。如果你想要以缩写方式运行之前的例子,则只需要输入如下示例:

$ gradle gT
$ gradle yG0

当你要运行名字特别长的任务或者多个任务参数时,这个特性非常有用。注意:任务名字的缩写必须是唯一的,Gradle才能找到相应的任务。

在执行时排除一个任务

有时候你想要在构建运行时排除一个指定任务。Gradle提供了一个命令行选项 -x 来实现。假设你想要排除任务yayGradle0:

$ gradle groupTherapy -x yayGradle0

Gradle排除了任务yayGradle0和它的依赖任务startSession,这个概念叫做智能排除

命令行选项

我们来探索最重要的通用命令行选项,控制构建脚本日志级别的标志位,以及给项目提供参数的方法。Gradle命令允许你同时定义一个或者多个选项。假设你想要将日志级别改变到INFO,则可以使用 -i 选项,或者如果想要打印出在执行期间发生错误时的堆栈踪迹信息,则可以使用 -s 选项。例如:

$ gradle groupTherapy -is
#或者
$ gradle groupTherapy -i-s

正如你所看到的,可以轻松地组合多个命令行选项。通过 -h 选项,你可以看到所有可用的选项:

$ gradle -h

举几个重要的例子:

  • -?,-h,--help:打印出所有可用的命令行选项,包含描述信息。

  • -b,--build-file:Gradle构建脚本的默认命名约定是build.gradle。使用这个命令行选项可以执行一个特定名字的构建脚本(比如,gradle -b test.gradle)。

  • --offline:通常,构建中声明的依赖必须在离线仓库中存在才可用。如果这些依赖在本地缓存中没有,那么运行在一个没有网络连接环境中的构建都会失败。使用这个选项可以让你以离线模式运行构建仅仅在本地缓存中检查依赖是否存在

参数选项

  • -D,--system-prop:Gradle是以一个JVM进程运行的。和所有的Java进程一样,你可以提供一个系统参数,就像-Dmyprop=myvalue这样。

  • -P,--project-prop项目参数构建脚本可用的变量。你可以使用这个选项直接向构建脚本中传入参数(比如:-Pmyprop=myvalue)。

日志选项

  • -i,--info:在默认设置中,Gradle构建不会提供大量的输出信息。通过这个选项可以将Gradle的日志级别改变到INFO以获得更多信息。如果你想要知道构建中发生了什么,这个选项非常有用。

  • -s,--stacktrace:如果构建在运行中出现错误,你会想要知道错误是从哪里开始的。-s选项在有异常抛出时会打印出简短的堆栈跟踪信息,帮助你进行调度。

  • -q,--quiet:减少构建出错时打印出来的错误日志信息。

帮助任务

  • tasks:显示项目中所有可运行的task,包括它们的描述信息。项目中应用的插件可能会提供一些额外的task。

  • properties:显示出项目中所有可用的属性。某些属性是由Gradle的project对象提供的,project对象是一个构建的本质表现形式。其他的属性都是用户定义的,要么来自于属性文件或者命令行选项,要么是直接在构建构建脚本中定义的。

Gradle守护进程

当Gradle成为日常工作的一部分时,你会发现需要重复地运行构建。如果你在一个web应用上工作,就更是如此。不管哪种方式,你都会发现效率很重要。每次初始化一个构建时,JVM都要启动一次,Gradle的依赖要载入到类加载器中,还要建立项目对象模型。这个过程需要花上好几秒。Gradle守护进程是这个问题的救星。

守护进程以后台进程方式运行Gradle。一旦启动,gradle命令就会在后续的构建中重用之前创建的守护进程,以避免启动时造成的开销。在我的机器上,成功地完成运行groupTherapy任务要花上3秒钟。我们希望提高启动和执行的效率。在命令行中启动Gradle守护进程很简单,在运行gradle命令时加上 --daemon 选项。示例:

$ gradle groupTherapy --daemon

为了验证守护进程在运行,你可以查看系统进程列表:

$ ps aux | grep gradle

后续触发的gradle命令都会重用守护进程。记住,守护进程只会被创建一次,即便你在命令行中加了 --daemon 选项。守护进程会在3小时空间时间之后自动过期。任何时候你都可以选择在执行构建时不使用守护进程,只需要添加命令行选项 --no-daemon 即可:

$ gradle groupTherapy --no-daemon

手动停止守护进程,可以执行:

$ gradle --stop


Gradle之尝试使用Gradle

Gradle之尝试使用Gradle

每个Gradle构建都是以一个脚本开始的。Gradle构建脚本默认名字 build.gradle。当在shell中执行gradle命令时,Gradle会去寻找名字是build.gradle的文件。如果找不到,就会显示一个帮助信息。

让我们在Gradle中实现经典的“Hello world!”例子。首先,你需要创建一个名字为build.gradle的文件。在文件中,定义一个独立的原子性工作。在Gradle的词汇中,叫作task任务)。在这个例子中,task叫helloWorld。要打印信息“Hello World!”,需要使用Gradle的通用语言Groovy,将println命令添加到task的action动作)doLast中。Groovy中的Println方法更简短,它相当于Java中的System.out.println方法。

task hellWorld{
    doLast{
        println ''Hello world!''
    }
}

运行该task:

$ gradle -q helloWorld

通过 -q 定义可选命令行选项quiet,告诉Gradle只输出该task相关的信息

在完全不需要了解Gradle的情况下,你已经开始使用Gradle的DSL了。task和action是这门语言重要的元素。名字为doLast的action几乎自表达了它的含义。它是task执行的最后一个action。Gradle还允许使用一种更精简的方式来指定相同的逻辑。使用左移符号 << 来简单地代表doLast。如:

task helloWorld << {
    println ''Hello world!''
}

我们来看一个更高级的示例:

task startSession << {
    chant()
}
def chant(){
    ant.echo(message: ''Repeat after me ...'')            //1
}
3.times{
    task "yayGradle$it" << {                            //2
        println ''gradle rocks''
    }
}
yayGradle0.dependsOn startSession
yayGradle2.dependsOn yayGradle1, yayGradle0            //3
task groupTherapy(dependsOn: yayGradle2)

一开始你可能没有注意到,这个清单中隐藏了很多高级特性。代码中引入了关键字dependsOn来说明task之间的依赖(3处)。Gradle会确保被依赖的task总会在定义该依赖的task之前执行。实际上,dependsOn是task的一个方法。这个后面再详细讲。

我们之前谈到的一个特性是Gradle和Ant有很好的集成(1处)。因为拥有对Groovy语言特性的完全访问权,你还可以使用chant()方法来打印消息。这个方法可以非常方便地在task中调用。每个脚本都带有一个ant属性,它赋予了直接访问ant任务的能力。在这个例子中,你可以使用Ant的任务echo打印出“Repeat after me”信息。

Gradle提供的一个漂亮的特性是定义动态task,这意味着可以在运行时指定它们的名字。你的脚本在循环(2处)中使用Groovy在java.lang.Number中扩展的times方法创建3个新的task。Groovy自动地暴露一个隐式变量 it 来指定循环迭代的次数。你使用这个计数器来构建task的名字。对于第一轮迭代,task可以叫作yayGradle0,然后 yayGradle1,yayGradle2。

现在运行:

$ gradle groupTherapy

注:你也许已经注意到例子中省去了quiet命令行选项,这表示运行该task时,会得到更多的信息。

Gradle使用gretty插件运行web项目

Gradle使用gretty插件运行web项目

一、gradle安装gretty插件

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "gradle.plugin.org.akhikhl.gretty:gretty:2.0.0"
    }
}
plugins {
    id ''java''
    id ''war''
    id ''org.akhikhl.gretty'' version "2.0.0"
}

二、自定义启动设置

gretty {
    httpPort = 8081
    // ''jetty7'', ''jetty8'', ''jetty9'', ''jetty93'', ''jetty94'', ''tomcat7'', ''tomcat8''
    servletContainer = ''jetty9''
    contextPath = ''/''
}

三、更多自定义配置

https://akhikhl.github.io/gre...

关于使用gradle“运行”任务运行主要方法gradle怎么运行的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Flutter“正在运行 Gradle 任务 'assembleDebug'...”(启动 Gradle 守护进程)永远不会结束 日志:、Gradle之使用Gradle的命令行、Gradle之尝试使用Gradle、Gradle使用gretty插件运行web项目的相关信息,请在本站寻找。

本文标签: