2016-08-13 5 views
1

maven jarファイルがmaven ejbに依存として含まれています。すべてのプロジェクト構造の下に説明:maven依存関係の一部であるjarファイルから、maven ear/ejbのpom.xmlのプロパティを読み取る

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)を含む耳にすぎません。

reports-serviceには依存関係としてServiceFramework(jar)が含まれています。このServiceFrameworkには、情報を保存するためにデータベースに接続するコードが含まれています。このServiceFrameworkは、情報を保存するためのレポート(サービス)のようなebj(私のプロジェクトにはたくさんあります)に含めることができます。

ここで、ServiceFrameworkのJavaコードからバージョン(および他のいくつかのpom.xml情報(groupId & & artifactIdなど)のreports-serviceを取得したいとします。私はMavenリソースプラグインを使ってみました。

<resources> 
    <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
    </resource> 
</resources> 

しかし、バージョンを選ぶJavaコードがServiceFramework jarにあるので、ServiceFrameworkのバージョンを私に渡します。 ServiceFramework jarを使用しているアプリケーションのバージョンが必要です。私はすべてを試しましたが、すべてのアプローチが私にServiceFrameworkのバージョンを与えます。

ServiceFrameworkは、それを依存関係として含むejbのpom情報を取得できる必要があります。だから、どうすればServiceFrameworkからレポート - サービスのPOM情報を取得/読み込むことができますか?

答えて

1

私はあなたが解決策に近いと思います。あなたはfilteringを使って、groupId &のartifactId &バージョン(別名GAV)をServiceFrameworkに「キャッチ」しようとしました。代わりに、filteringreports-serviceに、GAVをキャッチして、いくつかのリソースファイルに書き込みます(x.properties)。

ServiceFrameworkに位置してJavaコードをクラスパスからリソースx.propertiesをロードし、あなたが

+0

yes..itsがsaid..thanks @michaldoのuとして働いてほしいすべてをお読みください:) – shankar

関連する問題