2013-03-19 3 views
1

Я хочу развернуть файл, используя maven-deploy-plugin. В настоящее время у меня есть следующий в моем POM:maven-deploy-plugin репозиторий

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <id>deploy-features-xml</id> 
        <phase>deploy</phase> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <configuration> 
         <repositoryId>${project.distributionManagement.snapshotRepository.id}</repositoryId> 
         <url>${project.distributionManagement.snapshotRepository.url}</url> 
         <groupId>${project.groupId}</groupId> 
         <artifactId>${project.artifactId}</artifactId> 
         <version>${project.version}</version> 
         <file>features.xml</file> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

Я хочу изменить между хранилищем моментальных снимков и выпуском на основе версии. Если версия проекта - 1-SNAPSHOT, файл должен быть развернут в репозиторий снимков, если проект версии 1.0, файл должен быть развернут в репозиторий выпуска. Но maven-deploy-plugin жестко кодирует его?

ответ

2

Решение, с которым я столкнулся, состояло в том, чтобы использовать плагин build-helper-maven и плагин maven-resources. Эта настройка означает, что вместе с jar и pom и проектом будет развернут xml-файл, который может быть ссылкой в ​​maven repo как project/xml/features.

Соответствующие POM плагины:

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-artifacts</id> 
        <phase>package</phase> 
        <goals> 
         <goal>attach-artifact</goal> 
        </goals> 
        <configuration> 
         <artifacts> 
          <artifact> 
           <file>target/features/features.xml</file> 
           <type>xml</type> 
           <classifier>features</classifier> 
          </artifact> 
         </artifacts> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>copy-features</id> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/features</outputDirectory> 
         <resources> 
          <resource> 
           <directory>src/main/features</directory> 
           <filtering>true</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

Отличный ответ. Я закончил тем, что использовал ваше решение. Похоже, мы оба загружаем Karaf features.xml –

4

Это значение уже задано по умолчанию. Но вы должны использовать repository manager. Вы можете просто развернуть артефакт через mvn-развертывание, обычно с выпуском SNAPSHOT войдет в репозиторий SNAPSHOT в случае выпуска, который он перейдет в репозиторий выпуска.

+0

Я не уверен, что дается по умолчанию. Проект уже развертывает банку и помпу. Есть ли другой способ автоматического развертывания XML-файла? –

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