ear项目的Maven命令
我有一个基于EAR maven的项目,其结构如下:ear项目的Maven命令,maven,jakarta-ee,ear,Maven,Jakarta Ee,Ear,我有一个基于EAR maven的项目,其结构如下: ------ root | |--- EAR | |---- EJB (JAR) | |---- WEB (WAR) 我想为它制定一个目标,首先清理所有三个EAR、EJB、WEB和模块 然后首先安装EJB,然后安装WEB,最后安装EAR 因为它们的依赖性 我如何在maven中的一个命令行中完成它 这是我的pom.xml根目录 <url>http://jb
------ root
|
|--- EAR
|
|---- EJB (JAR)
|
|---- WEB (WAR)
我想为它制定一个目标,首先清理所有三个EAR、EJB、WEB和模块
然后首先安装EJB,然后安装WEB,最后安装EAR
因为它们的依赖性
我如何在maven中的一个命令行中完成它
这是我的pom.xml根目录
<url>http://jboss.org/jbossas</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<distribution>repo</distribution>
<url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
</license>
</licenses>
<modules>
<module>ejb</module>
<module>web</module>
<module>ear</module>
</modules>
<properties>
<dependencyManagement>
<dependencies>
<!-- Define the version of the EJB jar so that we don't need
to repeat ourselves in every module -->
<dependency>
<groupId>RHAMavenBased</groupId>
<artifactId>RHAMavenBased-ejb</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
<!-- Define the version of the WAR so that we don't need to repeat
ourselves in every module -->
<dependency>
<groupId>RHAMavenBased</groupId>
<artifactId>RHAMavenBased-web</artifactId>
<version>${project.version}</version>
<type>war</type>
<scope>compile</scope>
</dependency>
http://jboss.org/jbossas
Apache许可证,版本2.0
回购
http://www.apache.org/licenses/LICENSE-2.0.html
ejb
网状物
耳朵
鼠脑型
基于rhamaven的ejb
${project.version}
ejb
鼠脑型
基于rhamaven的web
${project.version}
战争
编译
您需要maven多模块项目设置。看看本教程。您需要的一切都可以通过此配置配置
编辑
您的家长pom中有一个条目
<dependency>
<groupId>RHAMavenBased</groupId>
<artifactId>RHAMavenBased-ejb</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
鼠脑型
基于rhamaven的ejb
${project.version}
ejb
我没有弄错,这里${project.version}是您正在构建的父pom的版本,因为它是在父pom中指定的,所以这种依赖关系会向下延伸到所有子模块,这在您的情况下不是一个好主意,因为EJB项目将依赖于自身(这是一个糟糕的设计)。理想情况下,模块不应依赖于自身。因此,我们的第一个问题是模块中的冗余依赖。其次,由于这是在父pom中定义的,并且正在从父pom读取${project.version}
,因此在m2、target和构建路径中可能存在版本不匹配甚至不同步的JAR 谢谢,但我已经做了所有这些事情,问题是当我没有清理我的ejb或war并尝试安装ear时,它使用旧的ejb或war,它不会自动安装ejb和war,我必须手动清理war、jar、安装它们,然后安装ear,我想写一个命令来做所有这些事情,如果它不能像那样工作,那就意味着你有一些不同的设置。你能把你的父母pom.xml放在这里吗?您在pom.xml中添加了模块,一切正常,但当我想要清理或安装任何模块时,我必须使用IDE向导逐一进行清理或安装,我需要一个如下的命令行,我可以运行它来完成我想要的所有工作:例如:mvn clean module jar、module war、module ear、install module jar、,模块war、模块ear但在正确的语法中如果在父pom上启动命令mvn clean install
,它将首先清理所有模块目标目录,然后在连续目录中安装相关JAR/war。您还没有在这里显示父pom如果我清理并安装父pom,它将使用旧的Jar和war来制作新的ear,ear本身将是新的,但是使用旧的Jar