
Esta herramienta de línea de comando valida sus archivos XML para un formato adecuado. Si no están formateados correctamente, imprime la diferencia y sale con un error. Puede usarlo de dos maneras: 1) Para fallar su compilación si alguno de los archivos XML-ish (por ejemplo, XML, XSD, XSL o XHTML) no se formatean correctamente, y 2) para formatearlos correctamente utilizando la opción --fix .
Lea esta publicación de blog primero: XCOP - CHECKER DE ESTILO XML .
Asegúrese de haber instalado Ruby y luego instalar la herramienta:
$ gem install xcopEjecutarlo localmente y leer su salida:
$ xcop --helpPara validar el formateo de sus archivos XML, simplemente pase sus nombres como argumentos:
$ xcop file1.xml file2.xml Si sus archivos no están formateados correctamente y xcop se queja, puede pedirle que los "embellíe", utilizando la opción --fix :
$ xcop --fix broken-file.xmlPara corregir todos los archivos en el directorio que puede hacer (no funcionará si sus nombres de archivo contienen espacios):
$ xcop --fix $( find . -name ' *.xml ' ) Puede colocar opciones de línea de comandos en el archivo .xcop en el directorio donde inicia xcop . Cada opción debe tomar una sola línea en el archivo. Todos se agregarán a la lista de opciones que especifique. Por ejemplo, como se sugirió en esta publicación de blog:
--license=LICENSE.txt
--nocolor
--quiet
--include=**/*
--exclude=**/*.xsl
--exclude=**/*.html
También puede crear el archivo ~/.xcop (en su directorio de inicio personal), que también se leerá y se agregará a las opciones de línea de comandos.
Rakefile ?Esto es lo que necesitas allí:
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 Cree un nuevo archivo de flujo de trabajo en el repositorio en .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 Para personalizar la ubicación de la licencia o el patrón de archivos, use license y files de las entradas de acción:
- uses : g4s8/xcop-action@master
with :
license : MY_LICENSE.txt
files : " src/*.xml " pom.xml ?Puede integrarlo con la ayuda de 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 ?Algo como esto debería funcionar:
< 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 >Lea estas pautas. Asegúrese de que la construcción sea verde antes de contribuir con su solicitud de extracción. Deberá tener instalados Ruby 2.3+ y Bundler. Entonces:
$ bundle update
$ bundle exec rake
Si está limpio y no ve ningún mensaje de error, envíe su solicitud de extracción.