如何從我的Java代碼獲取Maven項目basedir()?如何從Java代碼獲取Maven項目BaseDir()代碼
回答
據Codehaus,有行家財產${basedir}
如果你有一個屬性在你的資源,它具有${basedir}
佔位符文件,並enable filtering for the resources plugin,你會發現,還有的BASEDIR的編譯時間代入屬性文件。然後您可以使用代碼中的Properties
實例加載此代碼。
在/ SRC /主/資源,創建一個名爲project.properties文件,含有
project.basedir=${basedir}
然後,在POM,使濾波/ SRC /主/資源,如在行家資源概述過濾鏈接上面的文檔。
然後,在代碼,在運行時,裝入特性文件的成Properties
實例
Properties props = new Properties();
props.load(this.getClass().getResourceAsStream("project.properties"));
String basedir = props.get("project.basedir");
另一種方法是處理某些源文件和通過掛鉤到process-sources
相位做替換在那裏,但是這不太容易解釋。
你不能,因爲maven用於構建,並且在構建之後不「存在」。
如果您在構建過程中需要(例如通過exec插件),那麼它可以作爲系統參數訪問,也可以作爲參數傳遞給執行的程序。
我在Maven站點找到了這個代碼file = new File(project.getBasedir(),file);但我不知道如何獲得這個項目對象http://maven.apache.org/plugin-developers/common-bugs.html#Resolving_Relative_Paths –
@FerasOdeh:你在開發一個插件嗎?如果不是,該網站不會幫助你。 –
你在說要寫一個maven插件嗎?如果這是真的,那麼你可以通過maven插件API訪問'project'。 – ptomli
我假設你想從'exec:exec'或'test'運行時這個。如果是這種情況,您可以通過
System.getProperties().get("basedir")
這不起作用。它的功能是告訴maven-exec-plugin使用Maven的$ {project.basedir}來傳遞一個系統屬性(如你所願命名)。是這樣的:
該解決方案適用於我的行家3.0 .3,但顯然它不僅僅是從IDE中的maven *和*開始工作。 – pforhan
- 1. 從maven獲取$ {basedir}的父目錄
- 2. Maven從源代碼編譯項目
- 3. 如何從C++代碼獲取項目名稱?
- 4. 獲取從代碼
- 5. 獲取從代碼
- 6. 如何從源代碼構建maven項目
- 7. 如何從源代碼構建Maven項目?
- 8. 如何從我的Java代碼使用Apache Felix?如何添加maven POM代碼?
- 9. 谷歌代碼項目的Maven倉庫
- 10. 從代碼中讀取項目設置
- 11. Swift 3:如何從國家代碼獲取語言代碼?
- 12. 如何從PGP獲取返回代碼命令行代碼
- 13. 如何使用Tortoise SVN從谷歌代碼獲取源代碼?
- 14. 如何從Google代碼獲取源代碼?
- 15. python:如何從代碼對象獲取源代碼?
- 16. m2e從$ {sourceDirectory}/main/java獲取源代碼
- 17. Java從網站獲取源代碼
- 18. 從java代碼獲取隊列深度
- 19. Android:從罐子獲取Java源代碼
- 20. 如何從C和JAVA代碼獲取寄存器傳輸語言(RTL)代碼?
- 21. 如何從Java中的HTML代碼獲取JavaScript代碼的子字符串?
- 22. 從SPMetal代碼獲取UniqueId列表項
- 23. 無法從源代碼獲取目錄
- 24. 從源代碼獲取綁定目標?
- 25. 如何從Java代碼
- 26. MAVEN JAVA等效代碼
- 27. 從代碼中獲取Xcode項目目錄
- 28. 執行從Java代碼的Maven插件
- 29. 從Windows中的Java代碼運行Maven?
- 30. 如何從網頁獲取html代碼?
您應該備份一個步驟並解釋您正在嘗試執行的操作。這個問題很模糊,聽起來像是你想以錯誤的方式做事。 –