
Этот инструмент командной строки проверяет ваши файлы XML для правильного форматирования. Если они не отформатированы правильно, он печатает разницу и выходит с ошибкой. Вы можете использовать его двумя способами: 1) Чтобы провалить свою сборку, если какие-либо файлы XML-ISH (например, XML, XSD, XSL или XHTML) не отформатированы правильно, и 2) для их правильного формата, используя опцию --fix .
Прочитайте это сообщение в блоге первым: xcop - xml style Checker .
Убедитесь, что у вас установлен Ruby, а затем установите инструмент:
$ gem install xcopЗапустите его локально и прочитайте его вывод:
$ xcop --helpЧтобы подтвердить форматирование ваших файлов XML, просто передайте их имена в качестве аргументов:
$ xcop file1.xml file2.xml Если ваши файлы не отформатированы правильно, и xcop жалуется, вы можете попросить его «украсить» их, используя опцию --fix :
$ xcop --fix broken-file.xmlЧтобы исправить все файлы в каталоге, который вы можете сделать (не будет работать, если имена файлов содержат пробелы):
$ xcop --fix $( find . -name ' *.xml ' ) Вы можете поместить параметры командной строки в файл .xcop в каталоге, где вы запускаете xcop . Каждый вариант должен взять одну строку в файле. Все они будут добавлены в список указанных вариантов. Например, как это было предложено в этом сообщении:
--license=LICENSE.txt
--nocolor
--quiet
--include=**/*
--exclude=**/*.xsl
--exclude=**/*.html
Вы также можете создать файл ~/.xcop (в вашем личном домашнем каталоге), который также будет прочитать и добавить в параметры командной строки.
Rakefile ?Это то, что вам там нужно:
require 'xcop/rake_task'
desc 'Run XCop on all XML/XSL files in all directories'
Xcop :: RakeTask . new ( :xcop ) do | task |
task . license = 'LICENSE.txt' # no license by default
task . quiet = true # FALSE by default
task . includes = [ '**/*.xml' , '**/*.xsl' ] # xml|xsd|xhtml|xsl|html by default
task . excludes = [ 'target/**/*' ] # empty by default
end Создайте новый файл рабочего процесса в репозитории в разделе .github/workflows/xcop.yml :
---
name : XCOP
" on " :
# run on push to master events
push :
branches :
- master
# run on pull requests to master
pull_request :
branches :
- master
jobs :
build :
runs-on : ubuntu-latest
steps :
- uses : actions/checkout@v2
- uses : g4s8/xcop-action@master Для настройки местоположения лицензии или шаблона файлов используйте license и files ввода действий:
- uses : g4s8/xcop-action@master
with :
license : MY_LICENSE.txt
files : " src/*.xml " pom.xml ?Вы можете интегрировать его с помощью Maven-Antrun-Plugin:
< project >
[...]
< build >
[...]
< plugins >
[...]
< plugin >
< artifactId >maven-antrun-plugin</ artifactId >
< version >1.8</ version >
< executions >
< execution >
< phase >verify</ phase >
< configuration >
< target >
< apply executable = " xcop " failonerror = " true " >
< arg value = " --license " />
< arg value = " LICENSE.txt " />
< fileset dir = " . " >
< include name = " **/*.xml " />
< include name = " **/*.xsd " />
< exclude name = " target/**/* " />
< exclude name = " .idea/**/* " />
</ fileset >
</ apply >
</ target >
</ configuration >
< goals >
< goal >run</ goal >
</ goals >
</ execution >
</ executions >
</ plugin >
</ plugins >
</ build >
</ project >project.xml ?Что -то подобное должно работать:
< project >
[...]
< target name = " xcop " >
< apply executable = " xcop " failonerror = " true " >
< arg value = " --license " />
< arg value = " LICENSE.txt " />
< fileset dir = " . " >
< include name = " **/*.xml " />
< include name = " **/*.xsd " />
< exclude name = " target/**/* " />
< exclude name = " .idea/**/* " />
</ fileset >
</ apply >
</ target >
</ project >Прочитайте эти рекомендации. Убедитесь, что вы строите зеленое, прежде чем внести свой вклад в запрос на привлечение. Вам нужно будет установить Ruby 2.3+ и Бундлер. Затем:
$ bundle update
$ bundle exec rake
Если он чист, и вы не видите никаких сообщений об ошибках, отправьте запрос на вытягивание.