2014-03-06 42 views
6

我想創建一個獨立版本的應用程序,並想知道如何排除 要打包的非託管* .jar文件。這是「mariaDB4j-2.0-SNAPSHOT.jar」文件我完全 在測試中使用,這是大約56MB。如何從包裝中排除不必要的非託管依賴項?

我試圖把jar文件放到一個自定義目錄'test/lib'中。不幸的是,這並沒有排除mariaDB4j的包裝。

unmanagedBase <<= baseDirectory { base => base/"test/lib" } 

unmanagedJars in Test <<= unmanagedBase map { base => (base ** "mariaDB4j-2.0-SNAPSHOT.jar").classpath } 

對此有何看法?

乾杯 奧利弗

回答

5

我想你想添加到測試類路徑中。

兩件事情:

  1. 您可以檢查出有什麼使用show test:fullClasspath,以確保您的罐子上有類路徑。使用inspect test:fullClasspath將顯示用於測試的依賴關係。
  2. 我想您可以將JAR通過直接添加到類路徑:在測試

    fullClasspath + = Attributed.blank(baseDirectory.value/「測試/ lib目錄/ mariaDB4j-2.0-SNAPSHOT」)

希望有幫助!

+0

謝謝你的回答。這是行不通的。 mariaDB4j-2.0-SNAPSHOT.jar不可用,它不會被編譯。所有的測試都失敗了。在執行dist之後,mariaDB4j-2.0-SNAPSHOT.jar沒有打包。這是戰鬥的一半...... – OliverKK

+0

您是否添加了由當前項目編譯的文件? – jsuereth

1

這有效,但它看起來有點誇大了。更改非託管依賴項的基本目錄,將該文件包含到測試中並將其從編譯中排除。

unmanagedBase <<= baseDirectory { base => base/"test/lib" } 

unmanagedJars in Test <<= unmanagedBase map { base => (base ** "mariaDB4j-2.0-SNAPSHOT.jar").classpath } 

excludeFilter in unmanagedJars in Compile := "mariaDB4j-2.0-SNAPSHOT.jar" 

excludeFilter in unmanagedJars in Compile ~= { _ || "mariaDB4j-2.0-SNAPSHOT.jar" } 
1

,如果你想保持罐子在源存儲庫只是在你的源代碼樹中使用基於文件的Maven倉庫與

resolvers += "Private Maven Repository" at file(".").toURI.toURL+"/repository" 

然後MVN安裝不使用非託管依賴

MariaDB4j本地和複製造成的行家緩存的東西$ yourproject /庫

,並使用依賴像一個普通的管理依賴

+0

你可能會發佈一個例子,說明如何像常規託管依賴一樣使用依賴關係,或者如何從包裝中排除mariaDB4j? – OliverKK

+1

libraryDependencies + =「ch.vorburger.mariaDB4j」%「mariaDB4j」%「2.0-SNAPSHOT」%「test」 – OlegYch

相關問題