我有一个亲戚的简单多模块maven buid和父pom。这包括2个子模块,如下所示:
<modules>
<module>WebApp</module>
<module>WebService</module>
</modules>
当我在顶层pom上运行 mvn clean install 时,它会清理&amp;按预期安装每个子模块。但是我现在正在尝试添加一个插件(codehaus weblogic)目标来将WebApp .war部署到Weblogic 10.3.4,例如 mvn clean install weblogic:deploy 。出于某种原因,这不会运行清理和安装阶段,而是进行部署。如果我从WebApp目录中运行该命令,它会在执行部署之前执行清理和安装。
如果在最高级别运行目标,我是否会遗漏一些不会运行子生命周期阶段的问题。这是命令行输出:
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO] SupportClient
[INFO] SupportClient-WebServices
[INFO] SupportClient-WebApp
[INFO] Searching repository for plugin with prefix: 'weblogic'.
[INFO] org.apache.maven.plugins: checking for updates from central
[INFO] org.codehaus.mojo: checking for updates from central
[INFO] ------------------------------------------------------------------------
[INFO] Building SupportClient
[INFO] task-segment: [clean, install, weblogic:deploy]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean]
[INFO] [site:attach-descriptor]
[INFO] [install:install]
[INFO] Installing C:\Development\Destin8SupportClient\pom.xml to C:\Users\finchaj.HPH\.m2 \repository\com\mcpplc\supportClient\supportClient\1.0\supportClient-1.0.pom
[INFO] [weblogic:deploy]
[INFO] Weblogic Deployment beginning with parameters DeployMojoBase[adminServerHostName = localhost, adminServerProtocol = t3, adminServerPort = 8001, userId = xx, password = ****, artifactPath = C:\Development\Destin8SupportClient/WebApp/target/WebApp.war, projectPackaging = war, name = support-client-webapp, targetNames = AdminServer, remote = false]
[INFO] Weblogic Deployment parameters [-adminurl, t3://localhost:8001, -username, xx, -password, xx, -name, support-client-webapp, -targets, AdminServer, -source, C:\Development\Destin8SupportClient/WebApp/target/WebApp.war, -deploy]
weblogic.Deployer invoked with options: -adminurl t3://localhost:8001 -username xx-name support-client-webapp -targets AdminServer -source C:\Development\Destin8SupportClient/WebApp/target/WebApp.war -deploy
The file, 'C:\Development\Destin8SupportClient/WebApp/target/WebApp.war', does not exist.
答案 0 :(得分:2)
它在顶级(pom!)模块上运行weblogic:deploy目标。此目标只能在战争或耳朵模块上运行。
您需要在WebApp子模块中绑定该目标才能在安装阶段运行。 它目前正在顶级(pom!)模块上运行。
e.g。尝试将以下内容添加到Webapp子模块中的weblogic配置中。
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
另见Example C-1 in this documentation
如果您希望在构建结束时运行此项运行,则在构建完所有其他模块后,您将需要:
答案 1 :(得分:1)
如果要首先为所有项目运行安装阶段,然后将项目部署到Web服务器,则必须拆分maven调用。
mvn clean install
mvn weblogic:deploy
默认情况下,maven为每个项目执行所有任务,并将maven任务分开,以便单独运行它们。
答案 2 :(得分:0)
maven首先在父项目上运行所有指定的目标,然后在chldren上运行。
从日志中可以看出,maven运行了父级的clean
和install
目标,然后尝试运行weblogic:deploy
目标。现在,weblogic:deploy
显然不是与父母相关的目标,因为它旨在部署子webapp。 maven并不知道这一点,也就是失败。
也许您应该重新考虑npellow的解决方案,因为它应该适合您的要求。