2017-03-16 5 views
0

In meiner pom.xml Datei, die ich habe:definieren Quellverzeichnis in Maven Profile

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <resources> .. </resources> 
    <plugins> .. </plugins> 
</build> 

jedoch Wenn ich versuche, Maven Profile zu verwenden:

<profiles> 
    <profile> 
     <id>profileId</id> 
     <build> 
      <sourceDirectory>src</sourceDirectory> 
      <resources> .. </resources> 
      <plugins> .. </plugins> 
     </build> 
    </profile> 
</profiles> 

Maven gibt mir eine Fehlermeldung, dass:

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

Warum sollte ich nicht ein Quellverzeichnis in einem Profil definieren? Gibt es eine Möglichkeit, SourceDirectory in Profilen zu definieren?

+0

Warum möchten Sie ändere das sourceDirectory? Normalerweise ergibt das keinen Sinn ... – khmarbaise

+0

Das Projekt hat mehrere Quellverzeichnisse. Auf Jenkins möchte ich mehrere Jobs haben, die dasselbe Projekt haben, aber Code in verschiedenen Verzeichnissen basierend auf Maven-Profilen ausführen. Obwohl ich stimme zu, es ist nicht der beste Ansatz, aber ich war nur neugierig zu sehen, wie es funktioniert – pratikpncl

+0

Falsche Setup. Das hört sich so an, als müssten Sie stattdessen verschiedene Module haben ... Ich bin mir nicht sicher, warum Sie verschiedene Quellendirectories benötigen. Das hört sich so an, als müssten Sie die verschiedenen Quellverzeichnisse in verschiedene Module stecken, und das wird das Problem lösen, und Sie können die Konvention der Konfiguration pardigm in Maven behalten. – khmarbaise

Antwort

2

Gemäß der können Sie nur wenige Parameter im Profil ändern und <sourceDirectory> gehört nicht dazu.

Ich würde die Haupt <build> konfiguriert Quellen von Pfad durch eine Eigenschaft definiert nehmen (. ZB src.dir) und setzen Sie diese Eigenschaft auf src/main/java und es in dem benutzerdefinierten Profil überschreibt:

<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> 
Verwandte Themen