在 JAR 文件中包含源代码有什么缺点



为了帮助我们在调试时逐步执行代码,我建议构建我们的JAR文件以包含源代码。 我想知道这可能会导致什么问题。 我当时的想法是JAR文件会稍微大一些。 我可以忍受。 还有其他问题需要考虑吗?

蒂亚

通常,您将编译的代码和源代码分成两个不同的jar。

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

像 maven 这样的构建工具可以轻松地为您做到这一点。

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

它省去了使用单独的源罐大惊小怪。这也意味着,如果在将来的某个时候源项目丢失(就像大型组织中有时会发生的那样),维护程序员将有机会重新创建它。

如果你很高兴那些有权访问 jar 的人可以看到你的源代码,并准备支付增加 jar 大小的代价(以及创建、传输和部署 jar 的时间可能可以忽略不计的增加),那么这就是你需要担心的。据我所知,没有任何其他问题。

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

我通常会创建一个单独的源.jar。Maven可以轻松创建它,IDE知道如何访问/下载这些。

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

通常,您看到这种情况的地方是,如果您在执行此操作的 jar 上添加依赖项......然后你最终将这些源文件再次编译到依赖项目中并捆绑在其 jar 中,然后当类从一个源和另一个源加载时,所有类加载器地狱都会松动。

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

最新更新