質問

Maven に 5 つのモジュールを含むプロジェクトがあります。現在、「mvn clean install」を実行すると、他のモジュールからの 2 つの jar、1 つの war と 1 つの sar を含む ear が生成されます。

すべてのファイル名にはバージョンが含まれています (例: projectx-ear-2.0.0.ear、projectx-client-2.0.0.jar など)。

ファイル名に含まれるバージョンを省略するには、jar の 1 つと最後の Ear の名前を変更する必要があります。次のようになります。

projectx-ear.ear
|
+-- projectx-client.jar
|
+-- projectx-misc-2.0.0.jar
|
+-- projectx-sar-2.0.0.sar
|
\-- projectx-web-2.0.0.web

現在、次のプラグインを使用してビルドしています。maven-compiler-plugin と maven-release-plugin

期待する結果を達成するための最良の方法は何でしょうか?

役に立ちましたか?

解決

イヤーモジュールでは、次のいずれかを使用できます。 project.build.finalName 要素を設定することも、 maven-ear-プラグイン をサポートする finalName オプションのパラメータ。バンドルされた jar の最終的な名前を設定するには、 jarModule そして設定するには bundleFileName そのための財産。

最終的な構成は次のようになります (ここでは、プラグイン構成で最終的な Ear 名を設定する方法を示します)。

<project>
  [...]
  <dependencies>
    <dependency>
      <groupId>yourgroupid</groupId>
      <artifactId>projectx-client</artifactId>
      <version>2.0.0</version><!-- not mandatory if inherited -->
    </dependency>
    [...]
  </dependencies>
  [...]  
  <build>
    [...]
    <plugins>
      [...]
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <finalName>projectx-ear</finalName>
          <modules>
            <jarModule>
              <groupId>yourgroupid</groupId>
              <artifactId>projectx-client</artifactId>
              <bundleFileName>anotherName.jar</bundleFileName>
            </jarModule>
          </modules>
        </configuration>
      </plugin>
      [...]
</project>

他のヒント

あなたはこのようなあなたのポンポンでfinalNameプロパティを指定することによって、これを達成することができます:

<build>
    <finalName>${project.artifactId}</finalName>
</build>

ポイント 1 :単一の JAR/WAR。

名前にバージョン番号を含めずに作成するには、pom.xml に次のコードを追加するだけです。

<build>
  <finalName>${project.artifactId}</finalName>
</build>

したがって、たとえば projectx_misc をコンパイルすると、次のようになります。 プロジェクトx_misc.jar .

私はどうなるのでしょうか?POM プロジェクト (Netbeans 内) から同じパッケージをコンパイルすると、すべての jar の名前にバージョンが含まれ、EAR には xxx-version.jar アーカイブが含まれます。

したがって、ポイント 2:EARの問題。

EAR の pom.xml ファイルで、 maven-ear-プラグイン このプロパティを構成に追加します。

<fileNameMapping>no-version</fileNameMapping>

これは私のプラグイン設定の例です。

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-ear-plugin</artifactId>
   <version>2.8</version>
   <configuration>
       <version>6</version>
       <defaultLibBundleDir>lib</defaultLibBundleDir>
       <fileNameMapping>no-version</fileNameMapping>
   </configuration>
</plugin>

したがって、プロジェクト pom からすべてのアーカイブをコンパイルすると、すべてのバージョン番号が jar から削除されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top