Risolvi le regole di PMD a Maven localmente
Domanda
Proverò a fare quanto segue:
- .
- Ho un POM standard definito per tutti i miei progetti MAVEN2.
- che POM include gli strumenti da utilizzare e per PMD i regole da utilizzare.
- Ho definito una proprietà che nomina queste regole di queste regole ciascuna.
Fino a sapere che funziona. Posso definire un nuovo POM del progetto, utilizzare lì come genitore il mio POM standard e utilizzare le regole di regole definite. Sono persino in grado di ignorare la definizione della proprietà che definisce il regolamento di un altro nome.
L'ho definito come
auth-pmd-rule-set-3.x-v1-5.xml
anzichépmd-rule-set-3.x-v1-5.xml
(che viene quindi scelto da maven2) e ha incluso il fileauth-pmd-rule-set-3.x-v1-5.xml
localmente nel mio nuovo progetto (insrc/main/resources
). Ma Maven non lo trova. I messaggi di errore sono così:.
[Debug] Preparazione regole: AUTH-PMD-SET-Set-3.x-V1-5.xml
[Debug] PRIMA: AUTH-PMD-regola-set-3.x-v1-5.xml dopo: AUTH-PMD-SET-SET-Set-3.x-V1-5.xml
[Debug] La risorsa 'AUTH-PMD-SET-SET-SET-3.X-V1-5.XML' non è stato trovato con REORJOURCELOODER ORG.Codehaus.plexus.resource.loa der.fileresourCeloader.
[Debug] La risorsa 'AUTH-PMD-SET-SET-SET-3.X-V1-5.XML' non è stato trovato con REORJOURCELOODER ORG.Codehaus.plexus.resource.loa der.jarresourCeloader.
[Debug] La risorsa 'AUTH-PMD-SET-SET-SET-3.X-V1-5.XML' non è stato trovato con REORJOURCELOODER ORG.Codehaus.plexus.resource.loa der.threadcontextclasspathresourCeloader.
[debug] urlresourCeloader: Eccezione quando cerchi 'AUTH-PMD-SET-SET-3.X-V1-5.XML' AT '' AT ' java.net.malformedUncexception: Nessun protocollo: Auth-PMD-regola-set-3.x-v1-5.xml
C'è qualche tecnica disponibile per raggiungere ciò che voglio? Voglio ridefinire il rumore del PMD dovrebbe usare senza ripetere l'intera definizione di tutto.
Soluzione
In base al messaggio di errore, sembra che tu non abbia specificato il percorso completo del auth-pmd-rule-set-3.x-v1-5.xml
del set di regole personalizzato nel tuo pom.Secondo i documenti ,
Le serie di regole possono risiedere nel file classpath, filesystem o in un URL.Per set di regole che sono in bundle con il Strumento PMD, non è necessario specificarlo il percorso assoluto del file.Lo farà essere risolto dal plugin.Ma se il file set di regole è un set di regole personalizzato, tu è necessario specificare il suo percorso assoluto.