繁体   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