java - liferay-maven-plugin 从 maven Liferay 6.2.5 (6.2 ga6) 部署 war

标签 java eclipse maven tomcat liferay

我有一个为 Liferay 6.1.1 ga2 构建的 portlet。 这是eclipse中的一个maven项目。

我曾经使用 mvn liferay:deploy 使用 liferay-maven-plugin 部署该 portlet。

现在我正在尝试切换到 Liferay 6.2 ga6,所以我正在尝试使用这个新版本重新部署该 portlet,但是在执行部署期间使用 mvn liferay:deploy 发生了一个奇怪的错误:

[INFO] --- liferay-maven-plugin:6.2.5:deploy (default-cli) @ XXX-portlet ---
[WARNING] Error injecting: com.liferay.maven.plugins.PluginDeployerMojo
java.lang.TypeNotPresentException: Type com.liferay.maven.plugins.PluginDeployerMojo not present
    at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:115)
    at org.eclipse.sisu.space.NamedClass.load(NamedClass.java:46)
    at org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
    at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
    at org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:997)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1047)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:993)
    at com.google.inject.Scopes$1$1.get(Scopes.java:59)
    at org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82)
    at org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:260)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:459)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:97)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: java.lang.UnsupportedClassVersionError: com/liferay/maven/plugins/PluginDeployerMojo : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:389)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:242)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
    at org.eclipse.sisu.space.URLClassSpace.loadClass(URLClassSpace.java:107)
    ... 41 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.611s
[INFO] Finished at: Wed Feb 17 10:36:44 CET 2016
[INFO] Final Memory: 5M/15M

插件 liferay-maven-plugin 在我的 pom 中定义如下(使用 liferay.version=6.2.5 和其他指向我本地 tomcat 目录的属性):

<plugin>
    <groupId>com.liferay.maven.plugins</groupId>
    <artifactId>liferay-maven-plugin</artifactId>
    <version>${liferay.version}</version>
    <configuration>
            <autoDeployDir>${liferay.auto.deploy.dir}</autoDeployDir>
            <appServerDeployDir>${liferay.app.server.deploy.dir}</appServerDeployDir>
            <appServerLibGlobalDir>${liferay.app.server.lib.global.dir}</appServerLibGlobalDir>
            <appServerPortalDir>${liferay.app.server.portal.dir}</appServerPortalDir>
            <liferayVersion>${liferay.version}</liferayVersion>
            <pluginType>portlet</pluginType>
    </configuration>
</plugin>

我使用的 java 版本是 1.6.0_21,在 eclipse 和 tomcat 上,mvn 命令都是一样的。

如有任何帮助,我们将不胜感激!

最佳答案

看来确实是java版本的问题。 我将 JDK 的版本从 1.6.0_21 更改为 1.7.0_79,现在可以使用了。

可能插件的类是用较新版本的 Java 编译的。

关于java - liferay-maven-plugin 从 maven Liferay 6.2.5 (6.2 ga6) 部署 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35453396/

相关文章:

java - Session.get 在 hibernate 中工作,同时逐步调试,但在 eclipse 中运行时不工作

java - 项目中所需库 tomcat-embed-websocket 的存档无法读取或不是有效的 ZIP 文件

java - 如何在多个 TextView 中输入?

jvm - 优化从 DVD 加载 JRE 和 JVM 的时间

java - Java中长乘法的高位?

java - 元素 MyElement 在点 (x, y) 处不可点击...其他元素将收到点击

java - 应用程序代码曾经可以工作,但现在崩溃了

java - 如何在eclipse中显示日文字符

maven - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 8.1:compile (default-compile): Fatal error compiling: invalid target release: 11

java - 使用 Maven 在 Eclipse 中为 JUnit 5 配置类路径