我有maven jar文件,它作为依赖项包含在maven ejb中。在下面解释所有项目结构:
1) 家长的POM.xml(报告服务):
<groupId>com.xxx.pdf.reports</groupId>
<artifactId>reports-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Reports - Parent</name>
<modules>
<module>reports-application</module>
<module>reports-service</module>
</modules>
2) pom.xml of ear(reports-application) :
<parent>
<groupId>com.xxx.pdf.reports</groupId>
<artifactId>reports-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>reports-application</artifactId>
<packaging>ear</packaging>
<dependencies>
<dependency>
<groupId>com.xxx.pdf.reports</groupId>
<artifactId>reports-service</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
</dependencies>
3) pom.xml of ejb(reports-service) :
<parent>
<groupId>com.xxx.pdf.reports</groupId>
<artifactId>reports-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
</parent>
<artifactId>reports-service</artifactId>
<packaging>ejb</packaging>
<dependencies>
<dependency>
<groupId>com.xxx.common.serviceframework</groupId>
<artifactId>ServiceFramework</artifactId>
<version>1.1.0-SNAPSHOT</version>
</dependency>
.......other dependencies..........
................
4) pom.xml of jar(ServiceFramework) :
<groupId>com.xxx.common.serviceframework</groupId>
<artifactId>ServiceFramework</artifactId>
<version>1.0.0-SNAPSHOT</version>
如上所述,报告服务是构建报告应用程序和报告服务的父pom。这两个都是它的模块。
reports-application只是一个包含reports-service(ejb)的ear。
reports-service包含ServiceFramework(jar)作为它的依赖项。这个ServiceFramework包含连接到数据库以保存信息的代码。现在这个ServiceFramework可以被任何ebj(在我的项目中有很多这样的)包含,比如reports-service来保存信息。
现在,我想获取版本(和其他一些pom.xml信息,例如groupId
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
但它给了我 ServiceFramework 的版本,因为选择版本的 java 代码在 ServiceFramework jar 中。我想要使用服务框架jar的应用程序版本。我尝试了所有方法,但所有方法都给了我服务框架的版本。
需求是这样的,ServiceFramework应该能够获得ejb的pom信息,该EJB已经包含它作为它的依赖项。那么,我如何从ServiceFramework获取/读取reports-service的pom信息呢?
我认为你已经非常接近解决方案了。您尝试使用过滤
来“捕获”组 ID
位于ServiceFramework中的java代码应该从类路径加载资源x.properties并读取所有需要的内容