2015-04-24 11 views
5

Ho creato test delle prestazioni come sottomodulo di Maven al mio modulo principale. Tutte le classi di test sono scritti sotto src/main /java e non src/prova/javanon può essere indicizzato due volte - testSourceDirectory e sourceDirectory sono uguali

io sono in grado di confezionare il progetto come vaso ed eseguirlo per prestazioni testare il mio progetto.

Volevo eseguire mvn test. Per mvn test al lavoro dovrei avere il valore <testSourceDirectory> impostato. Come in questo caso io ho il mio codice in src/main/java ho impostato questo per:

<testSourceDirectory>src/main/java</testSourceDirectory> 

ora mvn test opere.

Ma il problema è la generazione del sonar non riesce con errore lamentando: can't be indexed twice. Che è ovvio come per il mio pom testSourceDirectory e sourceDirectory sono gli stessi.

[ERROR] Failed to execute goal 
org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) 
    on project Blah: File [relative=XYZ.java, abs=/Path/XYZ.java] can't be indexed twice. 
Please check that inclusion/exclusion patterns produce 
disjoint sets for main and test files -> 

Come risolvere questo problema?

+0

Alcuni ceppi possono essere? 'file già indicizzato' è una informazione piuttosto scarsa. – Olivier

+0

Aggiornata la domanda con l'errore esatto. –

risposta

2

Questo non è un utilizzo standard di Maven, ma è possibile correggere facilmente l'analisi di SonarQube utilizzando le esclusioni. sonar.exclusions = src/main/java/** o sonar.test.exclusions = src/main/java/**

a seconda se si desidera che i file di origine per essere considerati come prove o file principali .

Ma il modo Maven corretto sarebbe quello di mettere i test in src/test/java e ackage i test: https://maven.apache.org/guides/mini/guide-attached-tests.html

+0

metti 'sonar.exclusions = src/main/java/**' o 'sonar.test.exclusions = src/main/java/**' in 'sonar.properties' e riavvia il server sonar? Comunque non funziona per me, vedendo la stessa eccezione –

+0

Si scopre che avevo ' src' in pom.xml e quello era il problema –

2

stavo affrontando lo stesso problema. Infine, risolto con l'aiuto della documentazione di seguito: -

https://github.com/SonarOpenCommunity/sonar-cxx/wiki/FAQ

Q: ERROR: Caused by: File [...] can't be indexed twice.

A: In case of below error you have to verify your exclusion/inclusion properties. Please check that inclusion/exclusion patterns produce disjoint sets for source and test files

ERROR: Caused by: File [...] can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files An example could look like this:

sonar.sources=. 
sonar.tests=. 
sonar.test.inclusions=**/*Test*/** 
sonar.exclusions=**/*Test*/**