Как собрать проект maven без версии?


81

У меня есть проект maven, который я хочу создать без версии.

Теперь, когда я создаю проект с помощью maven, он создает это, commonjerseylib-1.0.warно мне нужно, commonjerseylib.warчтобы это было создано.

В дополнение к этому, я удаляю <version>тег, pom.xmlно Maven по-прежнему создает warс версией 1.0 по умолчанию.

Мой pom.xml:

      <modelVersion>4.0.0</modelVersion>
      <groupId>commonjerseylib</groupId>
      <artifactId>commonjerseylib</artifactId>
      <packaging>ear</packaging>
      <name>commonjerseylib</name>
      <!--<version>1.0</version>-->

Как его собрать без версии?

Ответы:


169

Вам всегда понадобится номер версии для проекта, однако можно изменить имя сгенерированного пакета (JAR, WAR, EAR и т. Д.) С помощью <finalName>элемента в POM.

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

или в более старых версиях maven:

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

По умолчанию finalName ${project.artifactId}-${project.version}, но его можно изменить на другое. Это повлияет только на имя пакета, созданного в targetкаталоге; имя файла в локальном репозитории и загруженного в удаленные репозитории всегда будет иметь номер версии.

См. Справочную документацию по POM для получения дополнительной информации.


Это идеально, ясно и чисто!
Томас

7
По крайней мере, начиная с Maven 3.0.3, $ {artifactId} устарел в пользу $ {project.artifactId}.
Glenn

2
@parage: Спасибо за ответ. Знаете ли вы, как это сделать, поскольку это влияет на имя файла в локальном репозитории и удаленных репозиториях.
namalfernandolk

Обратите внимание, что переопределение из командной строки не работает, например -Dproject.build.finalName=whatever- если вы хотите указать имя баночки в командной строке, см. Stackoverflow.com/a/13877971/587365
Эндрю Спенсер,

12

в плагине maven war в сборке, изменить

<warName> ${artifactId} </warName>

        <build>
           ..........
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <!-- web.xml is not mandatory since JavaEE 5 -->
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <warName>${artifactId}</warName>
                </configuration>
            </plugin>
         .............
       <build>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.