Как собрать проект 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>-->

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

user1137387
источник

Ответы:

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>
Кухаджеян
источник
0

Я исправил это с помощью следующих строк кода в pom

... ... $ {project.artifactId} ... ...
Шахид Хуссейн Аббаси
источник