Как поставить файлы свойств в дополнение к артефактам?

Если судьи/головы/ведущее устройство могут быть быстро переданы судьям/пультам ДУ/нечто/ведущему устройству, выводу

git merge-base refs/heads/master refs/remotes/foo/master

должен возвратить идентификатор SHA1 это, судьи/головы/ведущее устройство указывают на. С этим можно соединить сценарий, который автоматически обновляет все локальные ответвления, которые не имели никаких занимательных фиксаций, относился к ним.

Этот небольшой сценарий оболочки (я звонил, это git-can-ff) иллюстрирует, как это может быть сделано.

#!/bin/sh

set -x

usage() {
    echo "usage: $(basename $0) <from-ref> <to-ref>" >&2
    exit 2
}

[ $# -ne 2 ] && usage

FROM_REF=$1
TO_REF=$2

FROM_HASH=$(git show-ref --hash $FROM_REF)
TO_HASH=$(git show-ref --hash $TO_REF)
BASE_HASH=$(git merge-base $FROM_REF $TO_REF)

if [ "$BASE_HASH" = "$FROM_HASH" -o \
     "$BASE_HASH" = "$FROM_REF" ]; then
    exit 0
else
    exit 1
fi
7
задан Rich Seller 28 August 2009 в 12:28
поделиться

1 ответ

Вы можете прикрепить дополнительные артефакты, используя build-helper-maven-plugin . Приведенная ниже конфигурация будет присоединять datasource.xml в качестве дополнительного артефакта на этапе пакета . Если этот артефакт определен вне src / main / resources и src / main / webapp, он не будет включен в войну.

Обновление: чтобы гарантировать, что фильтрация ресурсов применяется в соответствии с вашим комментарием, вы можете указать выполнение resource-plugin цель для копирования ресурсов, определяющая применяемую фильтрацию. Затем вы все равно можете присоединить этот отфильтрованный артефакт с помощью build-helper-maven-plugin, обратившись к соответствующему целевому каталогу. Я обновил приведенный ниже пример, чтобы показать это использование.

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.4</version>
  <executions>
    <execution>
      <id>copy-resources</id>
      <phase>validate</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <outputDirectory>${project.build.outputDirectory}/datasource</outputDirectory>
        <resources>          
          <resource>
            <directory>src/main/datasource</directory>
            <filtering>true</filtering>
          </resource>
        </resources>              
      </configuration>            
    </execution>
  </executions>
</plugin>
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>build-helper-maven-plugin</artifactId>
  <version>1.3</version>
  <executions>
    <execution>
      <id>attach-artifacts</id>
      <phase>package</phase>
      <goals>
        <goal>attach-artifact</goal>
      </goals>
      <configuration>
        <artifacts>
          <artifact>
            <file>${project.build.outputDirectory}/datasource/datasource.xml</file>
            <type>xml </type>
            <classifier>datasource</classifier>
          </artifact>
        </artifacts>
      </configuration>
    </execution>
  </executions>
</plugin>

Это не будет отображаться в целевой папке, но он будет развернут / установлен в репозиторий вместе с войной.

На прикрепленный артефакт можно ссылаться, определяя зависимость с классификатором «источник данных». Например:

<dependency>
  <groupId>my.group.id</groupId>
  <artifactId>my-artifact-id/artifactId>
  <version>1.0.0</version>
  <classifier>datasource</classifier>
  <type>xml</type>
</dependency>

Вы можете использовать цель копирования подключаемого модуля зависимостей, чтобы получить артефакт и разместить его там, где он требуется, как часть процесса развертывания.

10
ответ дан 7 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: