2013-10-02 21 views
27

Voglio usare una directory di origine diversa per uno specifico profilo di Maven, tuttavia, quando cerco di specificarlo nella definizione del profilo ottengo questo errore:Variazione directory di origine nel profilo Maven

Unrecognised tag: 'sourceDirectory' (position: START_TAG seen ...<build>\r\n\t\t\t\t<sourceDirectory>...) 

La definizione di cui pom è la seguente:

<profile> 
    <id>development</id> 
    <build> 
     <sourceDirectory>${project.build.directory}/new-src</sourceDirectory> 
     . 
     . 
     . 
    </build> 
</profile> 

Quello che sto cercando di fare è quello di elaborare i file di origine prima della sua compilazione se e solo se questo profilo è attivo. Il mio processo cambierà i file sorgente al volo, lancerà i sorgenti modificati nella directory "new-src" e compilerò quella directory come se fosse il solito "src/main/java". Tutto il resto del ciclo di vita dovrebbe comportarsi normalmente. Se questo approccio è difettoso, qualcuno potrebbe indicarmi la giusta direzione?

risposta

46

In base allo documentation, è possibile modificare solo alcuni parametri <build> nel profilo e <sourceDirectory> non è uno di questi.

avevo configurare il principale <build> a prendere fonti del percorso definito da qualche proprietà, impostare questa proprietà su src/main/java e sovrascrivere nel profilo personalizzato (ad es src.dir.):

<project> 
    ... 
    <properties> 
     <src.dir>src/main/java</src.dir> 
    </properties> 
    <build> 
     <sourceDirectory>${src.dir}</sourceDirectory> 
     ... 
    </build> 
    <profiles> 
     <profile> 
      <id>development</id> 
      <properties> 
       <src.dir>${project.build.directory}/new-src</src.dir> 
      </properties> 
     </profile> 
    </profiles> 
</project> 
+0

Che fa il trucco, Grazie mille! – amaurs

+0

Quindi se (in Eclipse Luna) ho aggiunto (collegato) nel mio BuildPath (facendo clic con il tasto destro del mouse sul mio MavenProject) una cartella di origine dove la sua directory è "/ Users/MyName/Desktop/source", devo scrivere '/Users/MyName/Desktop/source '?? E tutto va bene? – Aerox

0

Vedere Maven model, non è consentito definire un sourceDirectory all'interno di un profilo. L'unica cosa che puoi fare è specificare la SourceDirectory all'interno della configurazione del plugin, assumendo che sia disponibile.

Problemi correlati