2015-12-07 6 views
0

Наша организация имеет соглашение о присвоении имен rpms. Как правило, число оборотов в минуту будет иметь более короткое базовое имя, чем проект Maven. Существует также конвенция о том, как названы выпуски. Поэтому мы хотим получить имя, подобное ${shortname}-${project.version}-${release}.noarch.rpm.rpm-maven-plugin, как управлять именем, под которым rpm хранится в хранилище m2?

Я хочу построить такие rpms, используя rpm-maven-plugin вместо старой технологии nmake.

И это легко осуществить с помощью параметров плагина. Требуется имя rpm, созданное в целевом каталоге.

Однако, когда mvn install устанавливает эти обороты в хранилище Maven, он настаивает на хранение его в «Maven пути»: ${project.artifactId}-${project.version}.rpm

Я хочу обороты, хранящиеся в стандартном репозитории Maven, используя имя, изначально созданное сверху упаковка.

Как я могу это сделать?

Обновление: Я пробовал использовать maven-install-plugin (цель установочного файла) и не получил результатов, которые я получил после. Но это было отчасти потому, что я не вызывал его должным образом. Его не вызывали. Если вы определяете цель установочного файла, она должна быть явно привязана к фазе установки. Сделав это, то есть добавив <phase>install</phase> к конфигурации, по крайней мере, вызвало выполнение установки, которую я хотел, но она все еще не позволяла мне называть rpm по желанию.

ответ

0

По словам Карла Хайнца Marbaise, коммиттер по проекту Apache Maven, what I am trying to do is impossible, and should not be attempted.

Однако, мне нужно то, что мне нужно, и нашел компромисс, который дает мне большую часть этого. Единственное, что мне пришлось пожертвовать, - это предположение, что RPM репозитория должен жить в том же каталоге репозитория, что и остальная часть проекта. Это очень незначительная жертва. Как только я это сделаю, я могу сохранить rpm, названный так, как я хочу, в каталоге репозитория Maven с именем с коротким именем.

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-install-plugin</artifactId> 
     <version>2.5.2</version> 
     <executions> 
       <execution> 
         <id>install-rpm</id> 
         <goals> 
           <goal>install-file</goal> 
         </goals> 
         <phase>install</phase> 
         <configuration> 
           <file>${project.build.directory}/rpm/${rpm.name}/RPMS/noarch/${rpm.name}-${project.version}-${rpm.release}.noarch.rpm</file> 
           <groupId>${project.groupId}.rpms</groupId> 
           <artifactId>${rpm.name}</artifactId> 
           <version>${project.version}-${rpm.release}</version> 
           <classifier>noarch</classifier> 
           <packaging>rpm</packaging> 
         </configuration> 
       </execution> 
     </executions> 
</plugin> 

Использование GroupID из ${project.groupId}.rpms, а не просто ${project.groupId} позволяет все RPMs построенные таким образом, чтобы жить за пределами главной ветви репозитория, который полезен в нашей ситуации.

Использование версии ${project.version}-${rpm.release}, а не только ${project.version} позволяет включить релиз в название.

И классификатор noarch получает это имя.

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

  • Нет связанных вопросов^_^