我正要包括HtmlUnit http://htmlunit.sourceforge.net项目中的库。我解压了 zip 文件,发现它不少于12 个依赖项 http://htmlunit.sourceforge.net/dependencies.html.
在引入依赖项时我一直很担心。我想我必须将所有这些依赖项与应用程序一起发送(在本例中为 8.7 mb)。我是否应该费心检查这些库的安全更新?最后(也是最重要的,实际上是我最关心的):如果我想包含另一个依赖于与此库相同的库但版本不同的库怎么办?也就是说,如果 HtmlUnit 依赖于一个版本怎么办?xalan http://xml.apache.org/xalan-j/我需要的另一个库取决于 xalan 的不同版本?
HtmlUnit 为我解决的任务could可以“手动”解决,但这可能不会那么优雅。
我应该担心这个吗?在这种情况下,最佳做法是什么?
编辑:我对一般情况感兴趣,而不是特别涉及 HtmlUnit。我只是在这里用它作为例子,因为这是我当前关心的问题。
小心处理你的依赖关系。它们可以给你带来很大的速度,但维护起来可能会很痛苦。这是我的想法:
- 使用一些软件来维护您的依赖关系。我将使用 Java 来执行此操作。没有它,您很快就会失去对依赖的跟踪。
- 请记住,不同的库有不同的许可证。给定的许可证并不适用于您的设置。我在一家软件公司工作,我们不能在我们发布的任何软件中使用基于 GPL 的库,因为我们销售的软件是闭源的。同样,如果可以的话,我们也应该避免 LGPL(这是由于一些复杂的律师推理,不要问我为什么)
- 对于单元测试,我会说全力以赴。如果您将来必须重写测试,那也不是世界末日。甚至可能软件的那部分要么非常稳定,要么甚至不再维护。失去这些并不是什么大不了的事情,因为当你获得它时,你已经获得了巨大的速度增益。
- 有些库比其他库更难替换。有些就像婚姻一样,应该持续软件的生命周期,但另一些只是易于更换的工具。 (想想 Spring 与 xml 库)
- 查看社区如何支持旧版本的库。他们支持旧版本吗?当生活继续而你却陷入某个版本时会发生什么?是否有活跃的社区或者您有能力自己维护它吗?
- 您的软件应该持续多长时间?是一年、五年、十年还是更长?如果软件的时间跨度很短,那么您可以使用更多的时间来到达目的地,因为能够跟上库的升级并不那么重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)