簡體   English   中英

Groovy - 如何建立一個罐子

[英]Groovy - How to Build a Jar

我編寫了一個Groovy腳本,它依賴於SQL Server驅動程序(sqljdbc4.jar)。 我可以使用GroovyWrapper(下面的鏈接)將其編譯成JAR,但是如何才能將依賴項添加到Jar中? 我正在尋找一種“最佳實踐”的東西。

https://github.com/sdanzan/groovy-wrapper

下面的兩個回復都有幫助,但是如何為簽名的Jar文件執行此操作? 例如:

線程“main”中的異常java.lang.SecurityException:Manifest主要屬性的簽名文件d igest無效

在groovy包裝器腳本中,您將在底部附近看到此行:

// add more jars here

這是您可以添加依賴項的地方。 如果jar文件位於您正在構建的同一目錄中,請添加如下所示的行:

zipgroupfileset( dir: '.', includes: 'sqljdbc4.jar' )

然后重新運行腳本,你的jar將包含sqljdbc4.jar的類。

編輯:

如果您所依賴的jar文件已簽名且您需要維護簽名,則必須保留外部jar。 如果不使用自定義類加載器,則不能在其他jar文件中包含jar文件。 但是,您可以在清單中指定依賴項,以避免必須設置類路徑,即您的jar仍然可以使用java -jar myjar.jar 將包裝腳本中的清單部分更新為:

manifest {
    attribute( name: 'Main-Class', value: mainClass )
    attribute( name: 'Class-Path', value: 'sqljdbc4.jar' )
}

從你的鏈接,如果你看一下GroovyWrapper腳本的來源,就有這一行:

zipgroupfileset( dir: GROOVY_HOME, includes: 'embeddable/groovy-all-*.jar' )
zipgroupfileset( dir: GROOVY_HOME, includes: 'lib/commons*.jar' )
// add more jars here

我明確地將它添加到那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM