2013-10-02 158 views
27

我想用一個不同的源目錄特定Maven的配置文件,但是,當我嘗試在配置文件定義指定它,我得到這個錯誤:更改源代碼目錄

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

的定義聚甲醛如下:

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

我所試圖做的是它的編譯前的源文件處理當且僅當此配置文件被激活。我的進程將動態更改源文件,將更改後的源文件放在「new-src」目錄中,並編譯該目錄,就像它是通常的「src/main/java」一樣。生命週期中的其他一切應該正常運行。如果這種方法存在缺陷,誰能指出我正確的方向?

回答

46

根據documentation,您只能在配置文件中更改<build>參數,而<sourceDirectory>不是其中之一。

我會配置主要<build>採取從路徑源通過一些屬性定義,該屬性設置爲src/main/java和覆蓋它的自定義配置文件(如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

這做的伎倆,非常感謝你! – amaurs

+0

因此,如果(在Eclipse Luna中)我添加(鏈接)在我的BuildPath中(單擊我的MavenProject上的鼠標右鍵)其目錄爲「/ Users/MyName/Desktop/source」的源文件夾,我必須編寫'/Users/MyName/Desktop/source '??一切順利嗎? – Aerox

0

請參閱Maven model,不允許在配置文件中定義sourceDirectory。你可以做的唯一事情就是在插件配置中指定sourceDirectory,假設它是可用的。