Я использую шов для разработки приложения и запуска его на weblogic 10.1MP Использование maven2 для создания приложения и не нашел файл jboss-seam-wls-compatible.jar в любом репозиторий. В maven, как я могу скопировать эту банку из моей локальной папки в папку target/WEB-INF/lib.Maven Чтобы скопировать файл jar из локальной папки
ответ
Вы можете установить банку в свой локальный репозиторий, используя 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>
Правильный способ сделать это в 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>
Как узнать, что основано на моем проекте? –
См. Мои правки ................ –
Мое намерение состоит не в создании локального хранилища. Я хочу знать, есть ли способ использовать maven для копирования этой банки из моего src или ресурса или любой другой папки в целевую папку – user118802
у вас уже есть локальный репозиторий, если вы используете Maven, нет необходимости его создавать. Он по умолчанию находится в ~/.m2/repository –
@Rich, мой подход не привязан к структуре каталогов коробки, это даже меньше, чем ваше предложение antrun. $ {basedir} определяется Mavens, поэтому он привязан только к структуре каталогов проекта, это все о Maven? –