2013-06-10 3 views
7

Привет: Im, обнаруживая, что maven развертывает по умолчанию, меняет имя файла в соответствии с идентификатором версии + артефакта. Например,maven: развернуть имя файла артефакта

Развертывание файла jar с артефактом = A и версией = V-0.1 приведет к созданию файла jar с именем AV-0.1.jar.

Есть ли способ изменить имя по умолчанию файла jar в развертывании, чтобы он не связывал эти feilds или не указывал окончательное развернутое имя jar явно?

+0

Возможный дубликат вопроса [this] (http://stackoverflow.com/questions/4238944/controlling-maven-final-name-of-jar-artifact). – dmahapatro

ответ

0

Простой ответ на этот вопрос: Нет

Проблема позади этого, если бы вы изменить схему именования не удастся найти артефакты в хранилище. Вот почему есть фиксированная схема именования.

3

Комплексный ответ на это: Да

Это немного сложнее, и вы должны быть осторожны, так как ПОМ не получить переписан. Таким образом, только удаленный репозиторий maven (artifactory или nexus) помещает его в правильную структуру папок.

Если вы перезаписать развертывания-файла цели в Maven развертывания цели, вы можете перезаписать параметры: http://maven.apache.org/plugins/maven-deploy-plugin/deploy-file-mojo.html

Один пример, который всегда будет размещать версии 4.5.1 для связующей будет выглядеть следующим образом:

 <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
       <execution> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <phase>deploy</phase> 
        <configuration> 
         <repositoryId>nexus-site</repositoryId> 
         <url>http://nexus.some.where/nexus-2/content/repositories/releases</url> 
         <file>${build.directory}/${project.build.finalName}.${project.packaging}</file> 
         <generatePom>false</generatePom> 
         <pomFile>pom.xml</pomFile> 
         <version>4.5.1</version> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

(и до того, как кто-то спросит, одна из причин сделать что-то вроде этого - сделать сборку более дружественной к CI. В CI все просто номер сборки, на самом деле нет «сборки релиза», каждая проверка дает производительность уже артефакт. Поэтому, заменив 4.5.1 на ${BUILD_NUMBER}, вы оставите много выпусков i п ваш артефакт для хранения ...)

+0

Спасибо! Я искал это какое-то время! Проблема только в том, что я использую 'maven-shade-plugin'. Теперь я разворачиваю два файла в свою целевую систему: старый с меткой времени и новый, который исходит от вашего решения там ^^ – displayname

0

МВН развертывания: развертывание-файл -DartifactId = AAA -Dversion = VVV -Dpackaging = баночка

Команда выше поместит файл в следующей структуре ,

AAA 
-VVV 
--AAA_VVV.jar 

Если вы просто хотите, чтобы имя созданного файла другого между последовательными нажатиями на Artifactory, вы можете использовать -Dpackaging параметр. то есть. Установите значение текущей временной метки

МВН развертывания: развертывание-файл -DartifactId = AAA -Dversion = VVV -Dpackaging = 2017_01_31_01_37.jar

AAA 
-VVV 
--AAA_VVV.jar 
--AAA_VVV2017_01_31_01_37.jar 
Смежные вопросы