java包不正确_Java JAR包含自己的依赖项是正确还是不正确?

我想这是一个由两部分组成的问题.我正在尝试编写自己的Ant任务(MyFirstTask),可以在其他项目的build.xml构建文件中使用.为此,我需要在自己的JAR中编译和打包我的Ant任务.因为我编写的这个Ant任务相当复杂,所以它有大约20个依赖项(其他JAR文件),例如使用XStream进行OX映射,使用Guice进行DI等.

我目前正在MyFirstTask项目内的build.xml文件中编写包任务(将包装myfirsttask.jar的构建文件,这是可重用的Ant任务).

我突然意识到我并不完全理解Java JAR的用意.是JAR不应该包含依赖项,并将它留给运行时配置(应用程序容器,运行时环境等)来为它提供所需的依赖项吗?我会假设如果是这种情况,可执行JAR是规则的例外,是吗?

或者,Java JAR是否还要包含它们的依赖项?

无论哪种方式,我都不想强迫我的用户将25个JAR复制到他们的Ant库中;那太残忍了.我喜欢WAR文件的设置方式,其中依赖关系的类路径在classes /目录下定义.

我想,最终,我希望我的JAR结构看起来像:

myfirsttask.jar/

com/ --> the root package of my compiled binaries

config/ --> config files, XML, XSD, etc.

classes/ --> all dependencies, guice-3.0.jar, xstream-1.4.3.jar, etc.

META-INF/

MANIFEST.MF

我假设为了实现这一点(并使运行时类路径也查看classes /目录),我需要以某种方式修改MANIFEST.MF(我知道有一个名为ClassPath的清单属性,我相信?).我只是把所有事情放在一起很困难,并且对于JAR开始的意图有一个迫在眉睫的问题.

有人可以确认Oracle是否打算让JAR包含其依赖项?而且,无论哪种方式,我必须在清单(或其他任何地方)做什么,以确保在运行时,类路径可以找到存储在classes /目录下的依赖项?提前致谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值