Если судьи/головы/ведущее устройство могут быть быстро переданы судьям/пультам ДУ/нечто/ведущему устройству, выводу
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
Вы можете прикрепить дополнительные артефакты, используя 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>
Вы можете использовать цель копирования подключаемого модуля зависимостей, чтобы получить артефакт и разместить его там, где он требуется, как часть процесса развертывания.