未解决的要求:导入包:com.google.api.client.auth.client.auth.oauth2;版本={1.30.0,2.0.0}

unresolved requiremnet: Import-package : com.google.api.client.auth.client.auth.oauth2; version={1.30.0,2.0.0}

liferay 7.2 版本

tomcat-9.0.17

gradle.build

compileOnly group: "com.google.api-client", name: "google-api-client", version: ':1.23.0'

compileOnly group: "com.google.oauth-client", name: "google-oauth-client-jetty", version: "1.23.0"

compileOnly group: "com.google.apis", name: "google-api-services-drive", version: "v3-rev110-1.23.0"

我需要使用 java 上传文件到 google 驱动器

当我启动服务器时,我遇到了这个错误

[![Liferay 控制台输出显示错误消息][1]][1]

2020-06-23 11:10:58.525 INFO  [main][PortalContextLoaderListener:139] JVM arguments: -Dcatalina.base=C:/Users/LENOVO/Desktop/liferay-ce-portal-7.2.1-ga2/tomcat-9.0.17 -Dcatalina.home=C:/Users/LENOVO/Desktop/liferay-ce-portal-7.2.1-ga2/tomcat-9.0.17 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=8099 -Dcom.sun.management.jmxremote.ssl=false -Dfile.encoding=UTF8 -Djava.endorsed.dirs=C:/Users/LENOVO/Desktop/liferay-ce-portal-7.2.1-ga2/tomcat-9.0.17/endorsed -Djava.io.tmpdir=C:/Users/LENOVO/Desktop/liferay-ce-portal-7.2.1-ga2/tomcat-9.0.17/temp -Djava.net.preferIPv4Stack=true -Djava.util.logging.config.file=C:/Users/LENOVO/Desktop/liferay-ce-portal-7.2.1-ga2/tomcat-9.0.17/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx2560m
2020-06-23 11:11:04.476 INFO  [main][DialectDetector:159] Using dialect org.hibernate.dialect.MySQLDialect for MySQL 8.0
2020-06-23 11:11:08.647 INFO  [main][ModuleFrameworkImpl:1468] Starting initial bundles
2020-06-23 11:11:08.694 ERROR [Framework Event Dispatcher: Equinox Container: 6c1b290f-406b-44be-9cec-6423b761abd2][Framework:93] FrameworkEvent ERROR 
org.osgi.framework.BundleException: Could not resolve module: hero [2129]_  Unresolved requirement: Import-Package: com.google.api.client.auth.oauth2; version="[1.23.0,2.0.0)"_ [Sanitized]
    at org.eclipse.osgi.container.Module.start(Module.java:444)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1682)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1662)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1624)
    at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:264)
    at org.eclipse.osgi.container.Module.doStart(Module.java:581)
    at org.eclipse.osgi.container.Module.start(Module.java:449)
    at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:188)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:428)
    at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:447)
    at org.eclipse.osgi.launch.Equinox.start(Equinox.java:115)
    at com.liferay.portal.bootstrap.ModuleFrameworkImpl.startFramework(ModuleFrameworkImpl.java:399)
    at com.liferay.portal.module.framework.ModuleFrameworkUtilAdapter.startFramework(ModuleFrameworkUtilAdapter.java:100)
    at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:300)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4682)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5150)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:713)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:695)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:631)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1832)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:526)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:425)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1577)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)

我参考这个 link https://developers.google.com/drive/api/v3/quickstart/java

有知道怎么解决的吗?

您是否将依赖项添加到文件夹 {LIFERAY_HOME}/tomcat-XX/lib/ext?通过 compileOnly,您告诉 gradle 依赖项将出现在运行时。

compileOnly 将使您的依赖项在编译时可用 。您将需要确保它们在运行时也可用(以及所有必需的传递依赖项)。

理想情况下,如果所有必需的依赖项都已经是 OSGi 包,您只需将它们放在 Liferay 的 deploy 文件夹中并将它们部署到运行时 - 它们将自动可用。

如果您的依赖项不是 OSGi 包:请检查您是否找到这些依赖项的分支,它们的区别仅在于在清单中添加了所需的 OSGi 指令。或者,不得已,实在不推荐,可以用compileInclude。如果您在多个插件中执行此操作并期望它们都处理相同的数据,这将以更大的插件和潜在的冲突为代价,将依赖项与您的插件打包在一起:您将无法传递这些对象。

我在 Liferay 大学的(免费,需要注册)课程 OSGi Basics 中有一章正是关于这个主题的。但是主要的信息就是你上面看到的。