在maven中更改模块名称

时间:2014-03-07 19:55:30

标签: java maven

我有一个ejbModule,我想根据个人资料更改他的名字。

有没有办法可以更改jar中生成的名称,比如工件的finalName?

我的pom:

<modules>
   <ejbModule>
      <groupId>grerj.sample</groupId>
      <artifactId>sample</artifactId>
   </ejbModule>
</modules>

我想要一个名为hsample而不是样本的jar。

3 个答案:

答案 0 :(得分:1)

默认名称是artifactId。

但您可以在pom.xml中定义生成的名称。

build - 标记内,您可以像这样定义finalName

<build>
    <finalName>hsample</finalName>
</build>

这些设置必须在grerj.sample.sample maven模块的pom.xml内完成。

答案 1 :(得分:1)

最简单的解决方案是使用bundleName like the documentation suggested,如下所示:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>2.9</version>
        <configuration>
           [...]
           <modules>
             <ejbModule>
               <groupId>artifactGroupId</groupId>
               <artifactId>artifactId</artifactId>
               <bundleFileName>TheNameYouPrefer</bundleFileName>
             </ejbModule>
          </modules>
        </configuration>
      </plugin>
    </plugins>
  </build>

答案 2 :(得分:0)

模块名称与portable JNDI name中的模块部件有关。

通常是ejb-jar.jar名称,但即使是基于注释的ejb,也可以用ejb-jar.xml覆盖。

<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
version="3.1">
    <module-name>MyModuleName</module-name>
</ejb-jar>

这在像这样的耳朵中给出了EJB的JNDI名称

java:global/myApp/MyModuleName/MyBean!my.package.MyBean

因此Maven可以很好地创建版本化的EJB Jar名称,JNDI名称保持不变。