2011-10-27 20 views
2

如果在/modules目錄下的JBoss AS 7中存在一個庫,那麼在我的項目中引用它的最好方法是什麼?從JBoss 7 AS模塊目錄中鏈接庫

我正在處理一個項目,該項目只是將每個模塊的依賴關係放在/lib文件夾中,與/src平行。 Ant構建只會引用那些/lib文件夾。

我不是簡單地在源代碼管理中拋出JBoss,儘管我不期望通過/modules子目錄來引用每個庫。有沒有更好的辦法?

如果它提供瞭解決問題的其他途徑:我使用的是IntelliJ IDEA,雖然使用了Ant構建而不是默認的Make構建,並且我們需要我們的Ant構建通過命令行工作。

回答

2

JBoss AS7有一個隱式模塊依賴的概念。 JPA,CDI等模塊的依賴關係會自動添加。 您可以在這裏查看完整列表: https://docs.jboss.org/author/display/AS7/Implicit+module+dependencies+for+deployments

否則,您需要添加一個Dependencies:清單條目。

此條目由部署所需的模塊名稱的逗號分隔列表組成。可用的模塊可以在應用程序服務器分配的模塊目錄下看到。

例如增加對Javassist和阿帕奇速度的依賴,你可以添加如下清單條目:

依賴關係:org.javassist出口,org.apache.velocity出口服務,org.antlr

你可以在這裏閱讀更多: https://docs.jboss.org/author/display/AS7/Developer+Guide#DeveloperGuide-DeploymentModuleNames

+0

對於我可能很愚蠢的問題,我表示歉意,但我還不太瞭解java。我覺得這個清單文件與部署/運行時由AS加載的jar有關。我爲我的構建使用Ant,並且在編譯時需要引用這些jar文件。清單解決方案是否也適用於這種情況? –

+0

適用於Maven,對於ANT,您可以將它們放在WEB-INF/Lib文件夾中 –

+0

這會破壞我在原地鏈接它們的目的。所以你基本上告訴我,新的JBoss服務器是圍繞Maven構建的,並且不直接支持其他構建系統 - 這是正確的嗎?順便說一句,不是你的錯,你只是信使;)我想我找到了一個解決方案,使用通配符來指定'.jar'文件相對於'modules'目錄('**/*。 jar')。任何想法,如果這將工作? (我當然會自己試試) –

1

如果你不想使用依賴管理器(Maven,Ivy,...),你可以檢查它們或在JBoss安裝文件夾中引用它們。如果你決定這樣做,你可能會想要一個指向JBoss安裝的變量。您需要能夠區分來自JBoss和其他人的依賴關係。後者需要與我們的應用程序打包,前者不能進入您的應用程序,但需要在jboss-deployment-structure.xml中引用(除非automatically provided by JBoss)。

我個人建議使用依賴關係管理器,它們支持只需編譯並將在運行時提供的依賴關係。而且他們還提供了像JUnit這樣的功能,只是測試需要而不是應用程序。