我想使用FileSet來準確指示我想要使用Javac任務編譯哪些文件。我不想要任何隱含的行爲。然而,我的嘗試卻失敗了。這是我到目前爲止:Ant:通過javac任務使用文件集
一個包含我所有源文件的FileSet。
<fileset id="srcfiles" dir="${srcdir}">
<include name="**/*.java"/>
</fileset>
並試圖將它傳遞給javac的目標。
<target name="build">
<javac srcdir=".">
<fileset refid="srcfiles"/>
</javac>
</target>
這給了我這個錯誤:javac doesn't support the nested "fileset" element.
閱讀螞蟻文檔後,我試圖改變最內層標籤從fileset
到sourcepath
。這在文件被編譯的意義上是有效的,但它仍然是錯誤的:srcfiles doesn't denote a path
。我認爲源只是由於隱含的規則而編譯的。
我怎樣才能明確地告訴javac我想編譯的單個文件?或者這不是螞蟻應該如何工作?我來自C++背景,其中識別源文件是構建過程的重要組成部分。但是,鑑於Java的文件命名和目錄結構要求,可能隱含的**/*.java
模式規則涵蓋了所有用例。
目前,是的,我只是編譯一個特定目錄下的所有* .java文件。我想要一個通用的解決方案,以防萬一發生變化。然而,我越想到它,我不確定在Java項目上會發生什麼變化...... –
對於java項目來說,首先你必須考慮項目的目錄結構。 '標準'的方式是你必須有** build和src ** dir。其他目錄是可選的:)簡單的方法是,從maven目錄結構看:) – martinusadyh
如果你想了解更多關於java目錄結構的知識,請看本頁[標準目錄佈局簡介](http://maven.apache .ORG /引導件/導入/引入到該標準的目錄-的layout.html) – martinusadyh