2012-10-10 43 views
2

为了协助我们调试代码时的能力,我想推荐我们的JAR文件包含源代码。我想知道可能会导致什么问题。我的直接想法是,JAR文件会稍大一些。我可以忍受这一点。我还需要考虑其他问题吗?在JAR文件中包含源代码有什么缺点?

TIA

+0

那么有整个代码安全的东西,但与反编译器这几乎是一个零点。 – thatidiotguy

+0

在某些情况下,jar文件的大小很重要。例如。在没有.java文件的情况下,服务器上的部署速度会更快。 – sics

回答

4

通常你单独编译代码和源代码分成两个不同的罐子。

然后,当需要调试代码时,您可以将源代码jar附加到IDE中。

像maven这样的构建工具很容易为你做到。

0

java空间中的一些工具将从类路径(即从jar中)获取源文件,并执行令人讨厌的事情。

通常情况下,你会发现这是如果你添加一个依赖于一个jar这样做...然后你最终将这些源文件再次编译到依赖项目中,并捆绑在它的jar中,然后所有classloader地狱破随着课程从一个来源加载到另一个来源而松动。

只是不这样做。按照Maven的方式(即使不使用Maven)并创建一个单独的-sources.jar

+0

哪些工具可以做到这一点?这听起来像FUD对我来说。 –

+0

中央存储库中存在一些具有此问题的特定工件。大约每年一次,有人依赖于错误的版本,然后当他们尝试编译他们的项目时,他们会得到一堆错误。我试图在谷歌上查找,但“包括来源的坏罐子”在前几页没有答案,因此需要拖拽M-L档案。不FUD,真正的问题。 –

2

我强烈推荐它。我这样做,所以做一些开源项目(例如jMock,Hamcrest,GWT)。

它可以节省使用独立源罐的烦恼。这也意味着,如果在将来的某个时候源项目丢失(有时在大型组织中会发生这种情况),维护程序员将不得不重新创建它。

如果你很高兴那些有权访问jar的人可以看到你的源代码并准备支付jar大小增加的惩罚(并且创建,转移和部署的时间可能微乎其微)那么这就是你需要担心的一切。据我所知,没有任何其他问题。

仅仅因为Maven标准将源文件分开并不意味着你必须这样做。

相关问题