gpt4 book ai didi

gradle - 如何将码头或gretty导入我的gradle脚本

转载 作者:行者123 更新时间:2023-12-03 03:07:36 24 4
gpt4 key购买 nike

我正在尝试从行动中的书中尝试gradle示例“todo-webapp-jetty” 。可以在here中找到。经过几次搜索,我发现不再支持 jetty 。相反,我们需要使用gretty插件(最好是org.gretty提供的插件)。但是仍然没有运气。我的构建脚本与示例相同,只是调整为使用gretty插件。

使用plugins块,这可以正常工作,但仅在我执行jettyRun任务之前。执行jettyRun任务后,控制台停留在87%:

plugins{
id 'java'
id 'war'
id 'org.gretty' version '2.2.0'
}
............
t<===========--> 87% EXECUTING [13s]a:509)
> :jettyRun=--> 87% EXECUTING [12s]artifacts.configurations.DefaultConfiguration.access$1800> :jettyRun=--> 87% EXECUTING [12s]
> :jettyRunorg.gradle.api.internal.artifacts.configurations.DefaultConfiguration$Configurati<===========--> 87% EXECUTING [12s]ts(DefaultConfiguration.java:1037)
> :jettyRunorg.gradle.api.internal.artifacts.configurations.DefaultConfiguration$Configurati<===========--> 87% EXECUTING [12s]nfiguration.java:1025)
> :jettyRun 81 more
<===========--> 87% EXECUTING [12s]
> :jettyRun
> IDLE

编辑1开始:发布完整的堆栈跟踪
D:\Practice\Gradle\GradleInAction\todo-webapp-jetty>gradle jettyRun -is
Initialized native services in: C:\Users\am064763\.gradle\native
The client will now receive all logging from the daemon (pid: 48064). The daemon log file: C:\Users\am064763\.gradle\daemon\4.10.2\daemon-48064.out.log
Starting 2nd build in daemon [uptime: 10.343 secs, performance: 97%, GC rate: 0.50/s, tenured heap usage: 2% of 716.2 MB]
Using 8 worker leases.
Starting Build
another.gradle -->> This is executed during the initialization phase ---- timestamp @ 2018-11-16T13:30:45
init.gradle -->> This is executed during the initialization phase ---- timestamp @ 2018-11-16T13:30:45
zingAnother.gradle -->> This is executed during the initialization phase ---- timestamp @ 2018-11-16T13:30:45
Settings evaluated using settings file 'D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\settings.gradle'.
Projects loaded. Root project using build file 'D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\build.gradle'.
Included projects: [root project 'todo-webapp-jetty']

> Configure project :
Evaluating root project 'todo-webapp-jetty' using build file 'D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\build.gradle'.
All projects evaluated.
Selected primary task 'jettyRun' from project :
Tasks to be executed: [task ':prepareInplaceWebAppFolder', task ':createInplaceWebAppFolder', task ':compileJava', task ':processResources', task ':classes', task ':prepareInplaceWebAppClasses', task ':prepareInplaceWebApp', task ':jettyRun']
:prepareInplaceWebAppFolder (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :prepareInplaceWebAppFolder UP-TO-DATE
Skipping task ':prepareInplaceWebAppFolder' as it is up-to-date.
:prepareInplaceWebAppFolder (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.111 secs.
:createInplaceWebAppFolder (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :createInplaceWebAppFolder UP-TO-DATE
Skipping task ':createInplaceWebAppFolder' as it is up-to-date.
:createInplaceWebAppFolder (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.001 secs.
:compileJava (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :compileJava UP-TO-DATE
Skipping task ':compileJava' as it is up-to-date.
:compileJava (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.048 secs.
:processResources (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :processResources NO-SOURCE
file or directory 'D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\src\main\resources', not found
Skipping task ':processResources' as it has no source files and no previous output files.
:processResources (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.001 secs.
:classes (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :classes UP-TO-DATE
Skipping task ':classes' as it has no actions.
:classes (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.0 secs.
:prepareInplaceWebAppClasses (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :prepareInplaceWebAppClasses UP-TO-DATE
Skipping task ':prepareInplaceWebAppClasses' as it has no actions.
:prepareInplaceWebAppClasses (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.0 secs.
:prepareInplaceWebApp (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :prepareInplaceWebApp UP-TO-DATE
Skipping task ':prepareInplaceWebApp' as it has no actions.
:prepareInplaceWebApp (Thread[Task worker for ':' Thread 5,5,main]) completed. Took 0.0 secs.
:jettyRun (Thread[Task worker for ':' Thread 5,5,main]) started.

> Task :jettyRun
Task ':jettyRun' is not up-to-date because:
Task.upToDateWhen is false.

scanDir: D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\src\main\webapp
scanDir: D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\src\main\resources
scanDir: D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\src\main\java
scanDir: D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\build\classes\java\main
scanDir: D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\build\resources\main
scanDir: C:\Users\am064763\.gradle\caches\modules-2\files-2.1\javax.servlet\javax.servlet-api\3.1.0\3cd63d075497751784b2fa84be59432f4905bf7c\javax.servlet-api-3.1.0.jar
scanDir: C:\Users\am064763\.gradle\caches\modules-2\files-2.1\javax.websocket\javax.websocket-api\1.0\fc843b649d4a1dcb0497669d262befa3918c7ba8\javax.websocket-api-1.0.jar
scanDir: C:\Users\am064763\.gradle\caches\modules-2\files-2.1\javax.servlet\servlet-api\2.5\5959582d97d8b61f4d154ca9e495aafd16726e34\servlet-api-2.5.jar
scanDir: C:\Users\am064763\.gradle\caches\modules-2\files-2.1\javax.servlet\jstl\1.1.2\3375e43c620df4f1114959400ff9bb90d12a2feb\jstl-1.1.2.jar
fastReloadMap={:=[org.akhikhl.gretty.FileReloadSpec(D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\src\main\webapp, null, null)]}
Enabling hot deployment with interval of 1 second(s)
Resource missing. [HTTP GET: https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.pom]
Resource missing. [HTTP HEAD: https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.jar]
Stopping scanner
Exception in thread "Thread-52" org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':grettyRunnerJetty9'.
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1054)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1700(DefaultConfiguration.java:123)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1028)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:444) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaBeanProperty.getProperty(MetaBeanProperty.java:59)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:228)
at org.gradle.internal.metaobject.BeanDynamicObject.tryGetProperty(BeanDynamicObject.java:171)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryGetProperty(CompositeDynamicObject.java:55)
at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:59)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getProperty(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:299)
at org.akhikhl.gretty.DefaultLauncher.getRunnerClassPath(DefaultLauncher.groovy:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:479)
at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:191)
at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:78)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects(ClosureMetaClass.java:398)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:338)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177)
at org.akhikhl.gretty.DefaultLauncher$_javaExec_closure7.doCall(DefaultLauncher.groovy:90)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:418)
at groovy.lang.Closure.call(Closure.java:434)
at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:167)
at org.gradle.api.internal.file.DefaultFileOperations.javaexec(DefaultFileOperations.java:224)
at org.gradle.api.internal.project.DefaultProject.javaexec(DefaultProject.java:1102)
at org.gradle.api.internal.project.DefaultProject.javaexec(DefaultProject.java:1097)
at org.gradle.api.Project$javaexec$6.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
at org.akhikhl.gretty.DefaultLauncher.javaExec(DefaultLauncher.groovy:89)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:157)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at org.akhikhl.gretty.LauncherBase$_launchThread_closure4.doCall(LauncherBase.groovy:256)
at org.akhikhl.gretty.LauncherBase$_launchThread_closure4.doCall(LauncherBase.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
at groovy.lang.Closure.call(Closure.java:418)
at groovy.lang.Closure.call(Closure.java:412)
at groovy.lang.Closure.run(Closure.java:499)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find org.gretty:gretty-runner-jetty9:2.2.0.
Searched in the following locations:
- https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.pom
- https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.jar
Required by:
project :
at org.gradle.internal.resolve.result.DefaultBuildableComponentResolveResult.notFound(DefaultBuildableComponentResolveResult.java:49)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolveModule(RepositoryChainComponentMetaDataResolver.java:108)
at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver.resolve(RepositoryChainComponentMetaDataResolver.java:63)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.ComponentResolversChain$ComponentMetaDataResolverChain.resolve(ComponentResolversChain.java:94)
at org.gradle.api.internal.artifacts.ivyservice.clientmodule.ClientModuleResolver.resolve(ClientModuleResolver.java:62)
<===========--> 87% EXECUTING [37s]artifacts.ivyservice.resolveengine.graph.builder.ComponentState.resolve(ComponentState.java:208)
> :jettyRunorg.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.resolve(ComponentState.java:196)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.ComponentState.getMetadata(ComponentState.java:152)
> :jettyRun=--> 87% EXECUTING [34s]artifacts.ivyservice.resolveengine.graph.builder.EdgeState.calculateTargetConfigurations(EdgeState.java:156)
<===========--> 87% EXECUTING [34s]artifacts.ivyservice.resolveengine.graph.builder.EdgeState.attachToTargetConfigurations(EdgeState.java:112)
> :jettyRunorg.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.attachToTargetRevisionsSerially(DependencyGraphBuilder.java:315)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolveEdges(DependencyGraphBuilder.java:202)
> :jettyRun=--> 87% EXECUTING [33s]artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.traverseGraph(DependencyGraphBuilder.java:155)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.builder.DependencyGraphBuilder.resolve(DependencyGraphBuilder.java:126)
at org.gradle.api.internal.artifacts.ivyservice.resolveengine.DefaultArtifactDependencyResolver.resolve(DefaultArtifactDependencyResolver.java:123)
> :jettyRun=--> 87% EXECUTING [33s]artifacts.ivyservice.DefaultConfigurationResolver.resolveGraph(DefaultConfigurationResolver.java:167)
<===========--> 87% EXECUTING [33s]artifacts.ivyservice.ShortCircuitEmptyConfigurationResolver.resolveGraph(ShortCircuitEmptyConfigurationResolver.java:89)
> :jettyRun=--> 87% EXECUTING [33s]artifacts.ivyservice.ErrorHandlingConfigurationResolver.resolveGraph(ErrorHandlingConfigurationResolver.java:73)
> :jettyRun=--> 87% EXECUTING [33s]artifacts.configurations.DefaultConfiguration$5.run(DefaultConfiguration.java:533)
> :jettyRun=--> 87% EXECUTING [33s]ations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
> :jettyRunorg.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
<===========--> 87% EXECUTING [32s]ations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
> :jettyRunorg.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfig> :jettyRun=--> 87% EXECUTING [32s]
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:509)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1800(DefaultConfiguration.java:123)
> :jettyRun=--> 87% EXECUTING [32s]artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getSelectedArtifacts(DefaultConfiguration.java:1037)
> :jettyRunorg.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1025)
... 81 more
> :jettyRun=--> 87% EXECUTING [10s]
> :jettyRun
> IDLE

编辑1 END

但是如果没有插件阻止,它将无法正常运行,每当我运行构建时,我都会收到以下错误消息:
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.gretty'

********

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\Practice\Gradle\GradleInAction\todo-webapp-jetty\build.gradle' line: 3

* What went wrong:
A problem occurred evaluating root project 'todo-webapp-jetty'.
> Plugin with id 'org.gretty' not found.

编辑2开始我的 build.gradle:
plugins{
id 'java'
id 'war'
id 'org.gretty' version '2.2.0'
}

repositories {
mavenCentral()
jcenter()
}

dependencies {
providedCompile 'javax.servlet:servlet-api:2.5'
runtime 'javax.servlet:jstl:1.1.2'
}

编辑2 END

任何指导,不胜感激。

最佳答案

当执行正在启动和运行应用程序的任务(例如jettyRun或bootRun)时,这是Gradle的“正常”行为:您将在应用程序执行时看到<===---> XY% EXECUTING [...]消息。

例如,使用Spring Boot bootRun任务,您将拥有:

$ ./gradlew bootRun

> Task :bootRun

. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.6.RELEASE)

<=========----> 75% EXECUTING [1m 58s]
> :bootRun

您应该在应用程序中配置日志记录,以使一些日志跟踪在STDOUT中可用,通常您会看到该应用程序已正确启动。

EDIT1

从您的堆栈跟踪:

Enabling hot deployment with interval of 1 second(s) Resource missing. [HTTP GET: https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.pom] Resource missing. [HTTP HEAD: https://repo.maven.apache.org/maven2/org/gretty/gretty-runner-jetty9/2.2.0/gretty-runner-jetty9-2.2.0.jar] Stopping scanner Exception in thread "Thread-52" org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':grettyRunnerJetty9'.



==>您需要在存储库块中添加 jcenter(),因为所需的 gretty-runner-jetty9-2.2.0.jar依赖项在maven中央存储库中不可用。
repositories {
jcenter()
// your other repositories ...

}

关于gradle - 如何将码头或gretty导入我的gradle脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53336084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com