我有一個項目使用「系統」範圍來指定一個jar文件,包括在我的項目的WEB-INF/lib
目錄中。這個工件不在任何maven倉庫中,所以我必須將它包含在我的項目中。我這樣做如下:Maven exec插件 - 如何包含「系統」類路徑?
<dependency>
<groupId>com.example</groupId>
<artifactId>MySpecialLib</artifactId>
<version>1.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/MySpecialLib-1.2.jar</systemPath>
</dependency>
這對大多數事情都很好。
但現在我試圖運行在命令行中的一些代碼(我的web應用程序之外,通過main()
方法我已經加入),因爲它不是在「運行」收錄mvn exec:java
無法解決MySpecialLib代碼類路徑。
如何,我不是:
- 添加MySpecialLib到運行時類路徑
或
- 告訴
mvn exec:java
也使用system
類路徑?
我試過mvn exec:java -Dexec.classpathScope=system
,但是這樣就會遺漏所有runtime
。
它添加到你的本地回購的問題是,它的視線,心不煩 - 容易忘記它是你添加到你的版本的自定義內容,並且容易丟失。您的團隊中的其他開發人員也必須被指示執行相同的手動安裝。 Nexus是一個巨大的解決方案,它應該是一個簡單的問題 - 爲您的構建添加定製的工件。然而,我同意你在受傷的世界。 :-) – 2011-03-13 14:11:34
我已經寫了makefiles腳本安裝到本地回購,使其令人難忘。另外,在我看來,免費聯結是一個小錘子,提供了豐富的有用功能。 – bmargulies 2011-03-13 15:27:30