代码之家  ›  专栏  ›  技术社区  ›  Adam Gent

将API代码和类一起放入JAR有什么缺点吗?

  •  8
  • Adam Gent  · 技术社区  · 14 年前

    在Java中,如果您打包源代码( JAVA)文件连同类一起进入jar中( .class)大多数类似于eclipse的IDE将显示用于代码完成的javadoc注释。

    IIRC很少有像JMock这样的开源项目。

    假设我已经将我的API代码和实现代码完全分开了,这样我就有了类似myproject-api.jar和myproject-impl.jar的代码,那么我为什么不把源代码放在myproject-api.jar中呢?

    因为表现?尺寸?

    为什么其他项目不这样做?

    编辑:除了Maven下载问题之外,将我的源代码放到类jar中以尽可能多地支持开发人员(Maven与否)会不会有什么影响?

    2 回复  |  直到 14 年前
        1
  •  6
  •   Community kfsone    7 年前

    一般由于分销原因:

    如果保留单独的二进制文件和源文件,则只能下载所需的文件。
    例如:

    • myproject-api.jar myproject-impl.jar
    • myproject-api-src.jar myproject-impl-src.jar
    • myproject-api-docs.zip myproject-impl-docs.zip

    现在, m2eclipse - Maven for Eclipse 可以 download sources 也会自动

    mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 
    

    现在,它也可以 generate the right pom 以防止在任何人声明对JAR的依赖时分发源JAR或JavaDoc JAR。
    操作注释:

    也无法想象下载量会成为一个问题(我的意思是说,2010年的10万不应该是一个问题)。

    实际上,它(即“尺寸”)是个问题。
    Maven已经患有“第一次构建时下载一半的互联网”综合症。
    如果下载 源代码和/或javadocs,这开始让人感到非常厌烦。

    此外,“分布”方面还包括 部署 在A webapp server, there is no real advantage to deploy a jar with sources in it .

    最后,如果您真的需要将源代码与二进制文件相关联,那么 SO question on Maven could help .

        2
  •  1
  •   Sean Patrick Floyd    14 年前

    使用maven,像这样自动附加源:

    http://maven.apache.org/plugins/maven-source-plugin/usage.html

    像这样的javadocs:

    http://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html

    这样他们就会自动被

    mvn eclipse:eclipse -DdownloadSources=true -DdownloadJavadocs=true 
    

    或通过M2Eclipse