我有Maven jar文件,它作为依赖包含在Maven ejb中。在下面解释所有项目结构:
1)parent(reports-service)的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>
如上所述,reports-service是构建report-application和report-service的父pom。这两个都是其模块。
报表应用程序只是包含报表服务(ejb)的耳朵。
reports-service包含ServiceFramework(jar)作为其依赖项。此ServiceFramework包含连接到数据库以保存信息的代码。现在,可以将这个ServiceFramework包含在任何ebj(我的项目中有很多这样的)中,例如reports-service来保存信息。
现在,我想从ServiceFramework中的Java代码获取report-service的版本(以及一些其他pom.xml信息,例如groupId和&artifactId)。我尝试使用Maven资源插件。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
但这给了我ServiceFramework的版本,因为选择版本的Java代码在ServiceFramework jar中。我想要使用ServiceFramework jar的应用程序版本。我尝试了所有方法,但是所有方法都为我提供了ServiceFramework的版本。
要求是这样,ServiceFramework应该能够获取ejb的pom信息(已将其作为依赖项包括在内)。因此,如何从ServiceFramework获取/读取report-service的pom信息?
我认为您已经很接近解决方案了。您尝试使用filtering
来“捕获” groupId和artifactId和版本(又名GAV)ServiceFramework
。相反,使用filtering
在reports-service
,抓GAV和写一些资源文件,让说x.properties
。
您位于ServiceFramework中的Java代码应从类路径中加载资源x.properties并读取您想要的所有内容
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句