我有一個項目,生成一些類和資源,然後應打包成一個罐子。如何使用maven生成代碼並將其打包而不依賴?
生成的類有幾個依賴關係。生成的類沒有依賴關係。
我最初的解決方案是使用maven assembly插件只包含生成的文件。不幸的是,打包的pom包含了生成所需的所有依賴。這個jar的消費者引入了一堆不必要的依賴關係。
我看着maven shade插件。我編譯一次,用mojo的exec插件運行generator類,編譯最後一次。然後陰影當然在包裝階段運行。它創建了一個dependency-reduced-pom.xml
而沒有過多的依賴關係。所以運行mvn clean package
並查看target/foo.jar
。我期望meta-inf文件夾中的jar是簡化的依賴jar。但它是完整的pom。我不知道生成的pom如何替換已打包的。
我試過的另一個糟糕的解決方案是使用多個配置文件及其自己的依賴性部分。我使用生成配置文件運行maven一次,然後再使用包裝配置文件運行。這個工作,但很糟糕,因爲你必須運行多個maven命令。這不是詹金斯友好的。
我該怎麼做呢?我應該如何安排一個生成一些代碼和一些文本文件的項目,然後將這些文件打包成一個友好的maven工件?
如何調用你的發電機?從測試?執行:在一個階段的Java?你的發電機組是你的項目的一部分嗎?您的生成器類是否依賴於(編譯時間)項目中的類? –