2016-04-21 99 views
0

目前,我有一些自定義Maven插件使用相同的庫(JAR)作爲我的應用程序使用它。 有必要提一下,這些庫也是我們開發的定製庫,而不是第三方。 我想放開這些庫,並將它們直接集成到我的應用程序源代碼中 - 只有一個問題 - 我該怎麼處理使用它們的maven插件。 有沒有一種方法可以在編譯/運行Maven插件時使用應用程序源代碼(集成庫之後)?自定義Maven插件和庫

+0

你想在同一個多項目中:1.庫代碼2.使用庫代碼的插件代碼3.插件執行? – michaldo

+0

是的。這可能聽起來很奇怪,但將所有這些工件單獨保存到一個應用程序中就變成了一場噩夢 - 重建所有內容,維護版本等 - 所有這些僅僅是爲了維護一個本身不太複雜的應用程序。我只想要一個項目來維護 - 這就是整個想法。 – Abby

+1

清除。我的項目中有同樣的問題。我的概念是在'java.util.function.Consumer'中封裝庫代碼,並創建一個通用插件,它通過'java.util.ServiceLoader'找到具體的'Consumer'並運行它。但這需要一兩天的時間來提供定期的答案。 – michaldo

回答

2

就我個人而言,由於依賴性地獄等原因,我不會走這條道路,但如果您確實需要創建一個包含源文件的jar(請參閱https://maven.apache.org/plugin-developers/cookbook/attach-source-javadoc-artifacts.html),然後在項目中需要將源代碼解壓縮這https://maven.apache.org/plugins/maven-dependency-plugin/examples/using-dependencies-sources.html

ps:什麼是刪除庫,而是使用源代碼?

+0

那些使用相同庫的不同maven插件呢? – Abby

+0

你可以按照上面的描述來執行這個技巧。將jar複製到maven插件中,將其解壓到目標中的源目錄,並將其包含在編譯器源路徑中。比你可以繼續正常的構建過程。 – uniknow

+0

我明白了。但是這意味着我複製了應用程序源代碼和我的插件源代碼(兩者都使用的庫)中的庫源代碼。這可能聽起來像一個愚蠢的問題 - 但有沒有辦法避免這種情況?這些maven插件僅用於這一個應用程序。基本上,我只是想讓這個應用程序儘可能獨立。 – Abby

相關問題