Groovy - 如何建立一个罐子

Ste*_*eve 4 groovy jar jar-signing

我编写了一个Groovy脚本,它依赖于SQL Server驱动程序(sqljdbc4.jar).我可以使用GroovyWrapper(下面的链接)将其编译成JAR,但是如何才能将依赖项添加到Jar中?我正在寻找一种"最佳实践"的东西.

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

下面的两个回复都很有帮助,但是如何为签名的Jar文件执行此操作?例如:

线程"main"中的异常java.lang.SecurityException:Manifest主要属性的签名文件d igest无效

ata*_*lor 6

在groovy包装器脚本中,您将在底部附近看到此行:

// add more jars here
Run Code Online (Sandbox Code Playgroud)

这是您可以添加依赖项的地方.如果jar文件位于您正在构建的同一目录中,请添加如下所示的行:

zipgroupfileset( dir: '.', includes: 'sqljdbc4.jar' )
Run Code Online (Sandbox Code Playgroud)

然后重新运行脚本,你的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' )
}
Run Code Online (Sandbox Code Playgroud)