根据指南 - https://github.com/WASdev/ci.maven#deploy, 我制作了如下的pom.xml
<plugin>
<groupId>net.wasdev.wlp.maven.plugins</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<serverHome>D:\eclipses\eGovFrameDev-2.7.0-64bit_Liberty\wlp</serverHome>
<serverName>defaultServer</serverName>
</configuration>
<executions>
<execution>
<id>deploy-app</id>
<phase>post-integration-test</phase>
<goals>
<goal>deploy</goal>
</goals>
<configuration>
<appArchive>D:\eclipses\eGovFrameDev-2.7.0-64bit_Liberty\workspace\Test\target\Test-0.0.1-SNAPSHOT.war</appArchive>
</configuration>
</execution>
</executions>
当我运行'mvn -X liberty:deploy'时,我得到了如下的异常
[错误]无法在项目上执行目标net.wasdev.wlp.maven.plugins:liberty-maven-plugin:1.0:deploy(default-cli)测试: CWWKM2155E:没有要部署的应用程序由appArchive属性指定 - &gt; [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:无法在项目上执行目标net.wasdev.wlp.maven.plugins:liberty-maven-plugin:1.0:deploy(default-cli)测试:CWWKM2155E:没有应用程序是按照appArchive属性的指定进行部署 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 在org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 在org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 在org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 在org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 在org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 在org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 在org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 在org.apache.maven.cli.MavenCli.main(MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) 在java.lang.reflect.Method.invoke(Method.java:619) 在org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 在org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 在org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 在org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 引起:org.apache.maven.plugin.MojoExecutionException:CWWKM2155E:CWWKM2155E:没有appArchive属性指定的应用程序部署 在org.codehaus.mojo.pluginsupport.MojoSupport.execute(MojoSupport.java:129) 在org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) ......还有19个 引起:org.apache.maven.plugin.MojoExecutionException:CWWKM2155E:CWWKM2155E:没有appArchive属性指定的应用程序部署 at net.wasdev.wlp.maven.plugins.applications.DeployAppMojo.doExecute(DeployAppMojo.java:76) 在org.codehaus.mojo.pluginsupport.MojoSupport.execute(MojoSupport.java:122)
请给我专家建议如何解决此问题,然后使用maven在IBM WAS Liberty上部署应用程序
谢谢,
答案 0 :(得分:0)
使用Maven命令行,您可以执行目标(就像在这种情况下一样)或生命周期阶段(例如 install )。在您附加的pom.xml片段中,您有一个插件级配置(使用 serverHome 和 serverName )和执行级配置(使用 appArchive )。问题是当从命令行执行插件的特定目标时,仅使用插件级配置。这就是插件没有看到 appArchive 配置的原因。但是,如果您执行Maven阶段(例如 install ),则将使用执行级别配置(在适当的时间)并部署应用程序。
如果您希望部署目标在命令行中运行,只需将 appArchive 配置移动到插件级配置即可。此外,以下内容可能会有所帮助:http://maven.apache.org/guides/mini/guide-default-execution-ids.html