2015-12-16 5 views
1

Когда я выполняю выпуск maven: выполните имя созданных файлов с версией сборки: artifactId.version. Мне нужно, чтобы по крайней мере название войны, сгенерированной при выполнении, будет только именем artifactId.Maven выпускает имя плагина с версией сборки

my pom is here: 

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>me.tingz</groupId> 
    <artifactId>dashboard</artifactId> 
    <packaging>war</packaging> 
    <version>15-SNAPSHOT</version> 
    <name>dashboard Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <distributionManagement> 
     <repository> 
      <id>google</id> 
      <url>file:/home/ziv/Documents/dashboard/versions/</url> 
     </repository> 
    </distributionManagement> 



    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 

    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongo-java-driver</artifactId> 
     <version>3.0.4</version> 
    </dependency> 
    <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1</version> 
     </dependency> 
    </dependencies> 
    <build> 

     <finalName>dashboard</finalName> 
     <plugins> 

     <!-- Release plugin Test!!!! --> 
     <plugin> 

      <artifactId>maven-release-plugin</artifactId> 
      <version>2.5.2</version> 
      <configuration> 

       <tagBase> 
        file:/home/ziv/tag 
       </tagBase> 
       <checkModificationExcludes> 
      <checkModificationExclude>pom.xml</checkModificationExclude> 
     </checkModificationExcludes> 
      </configuration> 
     </plugin> 

     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-scm-plugin</artifactId> 
     <version>1.9.4</version> 
     <configuration> 
      <username>zivziv</username> 

     </configuration> 
     </plugin> 

     <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.4</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
     </plugins> 

    </build> 
    <dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1</version> 
     </dependency> 
    </dependencies> 
    </dependencyManagement> 
    <scm> 
     <connection>xxx</connection> 
     <developerConnection>xxxd</developerConnection> 
     <tag>dashboard-11</tag> 

    </scm> 
</project> 
+0

Файл URL выглядит как 'файла: /// дома/...' ... – khmarbaise

+0

Спасибо. Вы знаете, почему генерируемые имена файлов всегда с версией? – zivziv77

ответ

1

плагин Maven релиз не "генерировать" файлы. Другие плагины, задействованные в жизненном цикле сборки Maven, например. плагин jar, создавать файлы. Таким образом, установка «finalName», как и вы, должна была сделать трюк, поскольку речь идет о «поколении».

Что плагин Release делает

  • мечения код в SCM
  • развертывает артефакты в хранилище

Последнее один действительно всегда требуется Maven Гав - и V для Версии. В противном случае релиз не будет уникальным. Поэтому, если вы хотите, чтобы плагин Release развертывал артефакт в репозитории без версии в его имени, вы потерпите неудачу. Это невозможно по определению.

Вы должны подумать о том, чтобы не использовать плагин Release вообще - в конце концов, это дрянной плагин. См. https://axelfontaine.com/blog/final-nail.html

Рассмотрите возможность использования вагона-Maven-плагин для достижения своей цели: http://www.mojohaus.org/wagon-maven-plugin/

+0

Я действительно благодарю вас за ответ, я понял, что использование maven для релизов не является хорошим. – zivziv77

+0

, кстати, это не так умно, чтобы каждый раз давать имя файла войны, поскольку контекстный путь веб-приложения основан на военном названии .... – zivziv77

+0

@ zivziv77 Вы уверены, что не смешаете выпуск <-> build? Релиз ДОЛЖЕН иметь своего рода уникальный идентификатор, и это лучше всего вводить в имя артефакта. Конечно, для сборки для развертывания веб-сервера вы можете удалить информацию о версии WAR-файла. Для этого см. Плагин сборки Maven. Кроме того, вы можете установить имя контекста веб-приложения другими способами, например. используя META-INF/context.xml. –

Смежные вопросы