2013-09-19 3 views
0

Я прочитал несколько ответов на этом форуме, так что надеюсь, что я что-то прошу. Недавно мы переехали в Tomcat 7, и обычная процедура - собрать военный файл из репозитория Nexus, вставить его в каталог tomcat webapps и запустить сервер и использовать его. Но из-за названия артефакта файла войны в Nexus, являющемся my-app-war-1.0.war контекстным пути в tomcat, не является ожидаемым. Я знаю, что это можно настроить с помощью context.xml, но мне было интересно, есть ли способ добавить ## в имя артефакта, которое развернуто в Nexus.добавление ## в maven 3 имя артефакта для tomcat 7 параллельное развертывание

Я попытался изменить @ {project.build.finalName}, но только изменяет имя артефакта в целевом каталоге, плагин maven deploy по-прежнему использует artifactId, что является «my-app-war». Итак, артефакт в Nexus оказался «my-app-war-1.0.war». Поскольку artifactId в maven имеет довольно строгую структуру, а ## не допускается, мне было интересно, что будет правильным способом добавления ## в имя артефакта , поскольку мы с большой вероятностью рассмотрим возможность использования параллельного развертывания, поэтому я ищу способы включить эту функциональность.

Я предполагаю, что я смогу развернуть две версии одного и того же файла войны в Nexus, один из которых назван немного другим (с ##), но тогда проще просто переименовать его и сохранить некоторое пространство. Интересно, был ли какой-нибудь план, как бы добавить ## к имени приложения, когда функция Parallel naming была реализована в Tomcat.

ответ

0

Вы можете использовать <classifier> конфигурацию maven-war-plugin. Таким образом, ваш war будет установлен в хранилище с именем ${project.artifactId}-${project.version}-my-app-war.war

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <classifier>##my-app-war</classifier> 
      </configuration> 
     </plugin> 
+0

Это способ добавить ## к артефактам имя, но в идеале я хотел бы add ## before $ {project.version} – TMC

0

Проблема в том, что Nexus возвращающий следующую ошибку, если включить в Maven версии ##.

Illegal character in fragment at index 103 

Вы можете войти в <path> путем развертывания в Apache7 символы ## для развертывания paralell в folowing:

<groupId>org.codehaus.mojo</groupId> 
<artifactId>tomcat-maven-plugin</artifactId> 
<executions> 
    <execution> 
    <id>remote</id> 
    <phase>deploy</phase> 
    <goals> 
     <goal>deploy</goal> 
    </goals> 
    <configuration> 
     <mode>war</mode> 
     <path>/${project.artifactId}-##${project.version}</path> 
     <url>http://tomcat7.../manager/text</url> 
     <username>user</username> 
     <password>password</password> 
     <update>true</update> 
    </configuration> 
    </execution> 
</executions> 
</plugin>