2009-09-09 1 views
9

Я использую шов для разработки приложения и запуска его на weblogic 10.1MP Использование maven2 для создания приложения и не нашел файл jboss-seam-wls-compatible.jar в любом репозиторий. В maven, как я могу скопировать эту банку из моей локальной папки в папку target/WEB-INF/lib.Maven Чтобы скопировать файл jar из локальной папки

ответ

3

Вы можете установить банку в свой локальный репозиторий, используя install-file goal плагина установки, после чего вы можете объявить зависимость от артефакта как обычно, и он будет автоматически упакован в вашу войну с помощью плагина войны.

Если у вас есть удаленный репозиторий, вы можете использовать deploy-file goal плагина развертывания для развертывания баннера в этом репозитории, а затем ваши товарищи по команде могут получить доступ к банке.

Для информации имеется Jira, чтобы сделать этот артефакт доступным на центральном.


Обновление по вашему запросу. Я бы рекомендовал не делать этого, потому что это не очень хорошая практика, но если вы должны разместить банку в исходной структуре вашего проекта, вы можете поместить ее в файл src/main/lib и использовать плагин antrun для копирования в WEB-INF/Lib.

Например:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <configuration> 
      <tasks> 
      <copy todir="${project.build.directory}/WEB-INF/lib"> 
       <fileset dir="src/main/lib"/> 
      </copy> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

Мое намерение состоит не в создании локального хранилища. Я хочу знать, есть ли способ использовать maven для копирования этой банки из моего src или ресурса или любой другой папки в целевую папку – user118802

+0

у вас уже есть локальный репозиторий, если вы используете Maven, нет необходимости его создавать. Он по умолчанию находится в ~/.m2/repository –

+0

@Rich, мой подход не привязан к структуре каталогов коробки, это даже меньше, чем ваше предложение antrun. $ {basedir} определяется Mavens, поэтому он привязан только к структуре каталогов проекта, это все о Maven? –

4

Правильный способ сделать это в Maven, чтобы установить его в хранилище (удаленный или локальный).

Однако существуют обстоятельства, при которых местный репозиторий менее предпочтителен. Например, вы запускаете Maven на множестве машин, и вы не хотите его вручную устанавливать.

Я просто использую анти-шаблон проверки JARs в управлении версиями в этих редких случаях. Я даже не хочу устанавливать его в локальный репозиторий, потому что он добавляет еще один шаг и создает другую копию JAR. Я просто использую JAR прямо так:

  <dependency> 
        <groupId>local</groupId> 
        <artifactId>homeless-jar</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/lib/homeless.jar 
        </systemPath> 
      </dependency> 

EDIT: $ {basedir} определяется Maven. Это базовый каталог проекта Maven, где находится ваш pom.xml. Мой пример не был ясен. См. Этот,

  <dependency> 
        <groupId>any-id</groupId> 
        <artifactId>any-name</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/src/main/lib/homeless.jar 
        </systemPath> 
      </dependency> 
+0

Как узнать, что основано на моем проекте? –

+0

См. Мои правки ................ –