我試圖從.thrift
文件和後來的包裝中自動生成源文件。據我所知,maven-thrift-plugin
是限制性的,因爲源目錄和目標目錄是固定的。有什麼方法可以指定源目錄和目標目錄嗎?我可以通過使用maven-antrun-plugin
來實現這個目標,但如果我不需要,我不想不必要地污染我的pom。Maven節儉插件
謝謝。
我試圖從.thrift
文件和後來的包裝中自動生成源文件。據我所知,maven-thrift-plugin
是限制性的,因爲源目錄和目標目錄是固定的。有什麼方法可以指定源目錄和目標目錄嗎?我可以通過使用maven-antrun-plugin
來實現這個目標,但如果我不需要,我不想不必要地污染我的pom。Maven節儉插件
謝謝。
據我可以看到從源(https://github.com/dtrott/maven-thrift-plugin/blob/master/src/main/java/org/apache/thrift/maven/ThriftCompileMojo.java)有控制此行爲的配置屬性。
嘗試這些特性,他們應該工作:
thriftSourceRoot
thriftTestSourceRoot
outputDirectory
這些道具應該被添加到<configuration>
部分與<thriftExecutable>
一起,等:
<plugin>
<groupId>org.apache.thrift.tools</groupId>
<artifactId>maven-thrift-plugin</artifactId>
<version>0.1.10</version>
<configuration>
<thriftExecutable>/usr/local/bin/thrift</thriftExecutable>
<thriftSourceRoot>${basedir}/src/main/my_custom_thrift_root</thriftSourceRoot>
</configuration>
<executions>
...
</plugin>
太棒了!謝謝。這確實將源文件生成到我指定的目錄中。但是,它創建 – Kesh
謝謝!這確實將源文件生成到我指定的目錄中。然而,它創建這些文件在一個gen-java目錄中,我似乎無法擺脫。此外,插件會強制清除輸出目錄,這對我來說也是一個問題,因爲我在目錄中有其他幫助器類,並且它們也會被刪除。有什麼辦法可以避免強制清理? – Kesh
我不認爲有可能擺脫'gen-java'(至少即使在命令行中我也做不到)。說到強制清理:可能會從一個節儉源生成多個java文件。因此,垃圾生成的文件將在每次重新命名「節點」中的「struct」/「service」後出現。最好在不同目錄中生成其他文件。 – Wildfire
我也結束了持續的maven-antrun-plugin
路線,這裏是一個功能例如:https://github.com/cobbzilla/cobbzilla-wizard/tree/master/wizard-thrift
maven-antrun-plugin
的exec thrift
目標的build.xml生成的源代碼返回到源代碼樹中;我不喜歡衍生文件污染我的上游源代碼控制,所以生成的文件位於thrift
包中,而包目錄位於.gitignore
文件中。有點kludgy。
一個更好的方式,我瞭解了自編寫代碼是to compile multiple java source directories in a single maven project,這將是更清潔。
我敢打賭,已經有一個答案,但我沒有找到它。 – JensG