Java 使用一个pom和maven创建ear包
我想用一个ejb项目和依赖项(没有war文件)创建ear应用程序。是否可以在一个pom.xml中指定构建配置,以避免不必要的应用程序模块倍增(我有大约8个项目将以这种方式打包,如果我要以这种“标准”方式进行打包,我必须创建8*3=24个模块/pom)。我不想将所有应用程序放在一个ear中,因为我需要分别取消部署/重新部署它们 现在我有两个解决方案:Java 使用一个pom和maven创建ear包,java,maven,jakarta-ee,Java,Maven,Jakarta Ee,我想用一个ejb项目和依赖项(没有war文件)创建ear应用程序。是否可以在一个pom.xml中指定构建配置,以避免不必要的应用程序模块倍增(我有大约8个项目将以这种方式打包,如果我要以这种“标准”方式进行打包,我必须创建8*3=24个模块/pom)。我不想将所有应用程序放在一个ear中,因为我需要分别取消部署/重新部署它们 现在我有两个解决方案: 使用模块结构以标准方式创建ear: 但正如我提到的,它创造了模的乘法 使用maven shade插件创建具有依赖项的jar <build&g
- 使用模块结构以标准方式创建ear: 但正如我提到的,它创造了模的乘法
- 使用maven shade插件创建具有依赖项的jar
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.1</version> <executions> <execution> <phase>package</phase> <goals><goal>shade</goal></goals> <configuration> <finalName>project</finalName> </configuration> </execution> </executions> </plugin> </plugins>
但是使用这个解决方案,我得到的是jar而不是ear,并且我的依赖项与代码混合在一起org.apache.maven.plugins maven阴影插件 2.1 包裹 阴凉处 项目
有没有其他方法可以使用单个pom.xml创建只使用ejb和maven依赖项的可部署应用程序?我不理解的是:
模块的乘法
?你对每一个目的都有一个单一的责任(模块)?问题是什么?正如我提到的,我有8个项目,每个项目我都想成为独立的ear,所以要完成这一点,我需要24个pom.xml(我的意思是pom=module),其中16个仅用于将应用程序打包为ear。如果一个应用程序有一个pom,那么结构会更清晰,添加另一个应用程序不会复制粘贴此结构。您违反了关注点分离原则。您说拥有一个包含EJB/EAR的单一模块意味着您需要编译代码运行测试,而且还需要创建一个包含EJB的EAR文件。如果你想走这条路,试试看,但我不确定这是否真的管用。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>shade</goal></goals>
<configuration>
<finalName>project</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>