11

我对这样的子 pom 有依赖关系。

<dependencies>
        <dependency>
            <groupId>sample-groupID</groupId>
            <artifactId>sfint</artifactId>
            <version>1.0.0-SNAPSHOT</version>  
            <type>war</type>                
        </dependency>
</dependencies>

我正在使用 maven-ear-plugin。

 <plugins>
  <plugin>
   <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven.ear.plugin</artifactId>
    <version>2.10</version>
    <configuration>
            <modules>
                <webModule>
                    <groupId>sample-gropuID</groupId>
                    <artifactId>sfint</artifactId>
                    <version>1.0.0-SNAPSHOT</version>
                    <moduleID>WebModule_sfint</moduleID>
                    <bundleFileName>sfint.war</bundleFileName>  
                </webModule>
            </modules>  
    </configuration>
  </plugin>

现在我的问题是我希望我的战争文件是这样的 - sfint.war但我得到它 - sfint.1.0.0-SNAPSHOT.war

有什么帮助吗??

4

5 回答 5

26

<build>标记中,将工件所需的名称指定为“finalName”。

<build>
    <finalName>sfint</finalName>
</build>
于 2015-10-30T05:40:37.317 回答
2

使用插件的outputFileNameMapping选项maven-ear-plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ear-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <outputFileNameMapping>@{artifactId}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
于 2018-04-17T12:49:42.077 回答
2

您可以配置maven-ear-plugin 以省略EAR 文件中的版本信息:

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.10.1</version>
        <configuration>
           [...]
           <fileNameMapping>no-version</fileNameMapping>
        </configuration>
      </plugin>
    </plugins>
  </build>
于 2015-10-29T10:35:28.973 回答
0

这将解决您的问题:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>myEAR</groupId>
  <artifactId>myEAR</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>ear</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.10</version>
        <configuration>
          <earSourceDirectory>EarContent</earSourceDirectory>
          <generateApplicationXml>false</generateApplicationXml>
          <version>6</version>
          <defaultLibBundleDir>lib</defaultLibBundleDir>
          <fileNameMapping>no-version</fileNameMapping>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>myWAR</groupId>
        <artifactId>myWAR</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>war</type>
    </dependency>
  </dependencies>
</project>

如果您想从 EAR 中删除版本号而不是添加 myEar,那么您的最终 EAR 将是包含 myWAR.war(没有版本号)的 myEAR-0.0.1.SNAPSHOT.EAR

于 2016-08-09T09:11:15.767 回答
0

如果war/ejb 是ear 项目的一部分,则应该使用bundleFileName 来更改最终ear 工件中的模块名称。

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-ear-plugin</artifactId>
   <version>${version.ear.plugin}</version>
   <configuration>
     <modules>
       <webModule>
         <groupId>com.foo</groupId>
         <artifactId>myapp-web</artifactId>
         <contextRoot>/myapp</contextRoot>
         <bundleFileName>myapp-web.war</bundleFileName>
       </webModule>
       <ejbModule>
         <groupId>com.foo</groupId>
         <artifactId>myapp-ejb</artifactId>
         <bundleFileName>myapp-ejb.jar</bundleFileName>
       </ejbModule>
     </modules>
   </configuration>
 </plugin>
于 2017-04-14T12:21:50.553 回答