【问题标题】:IntelliJ: generate a JAR but do *NOT* including dependenciesIntelliJ:生成一个 JAR,但不包括依赖项
【发布时间】:2015-05-27 03:44:46
【问题描述】:

在一个简单的 IntelliJ 模块中,我只想通过 IntelliJ IDE 命令使用我的 .class 文件生成一个 .jar 文件。

在将其标记为“重复”之前请小心:

虽然我看到 Google 和 Stack 的热门标题很有希望,但我没有找到真正好的答案,或者标题具有误导性,或者它是一个没有答案的问题。我介绍了我以前见过的一个可能的答案(如下),以及为什么我认为它不匹配。

我过去使用过 Eclipse,但我对 IntelliJ 比较陌生。

我使用过“项目结构/工件”的东西。我可以生成巨大的 jar,类似于使用“阴影”,但它很大,因为它包含所有嵌套的依赖项。我们想要只包含这个模块的类文件的小 jar,因为我们要部署到的系统已经拥有所有其他 jar。

我在 Artifacts 对话框中看到了一些关于更改目标目录的引用,但它随后谈到了在 Manifest 文件中进行的引用,这是我不想要的。目标环境已经设置了它的 java 路径,所以我担心这个 jar 中的 jar 引用会搞砸。如果这真的是答案,那么我对它的工作原理感到困惑。

限制 1:不能使用命令行工具,因为我实际上是在引导其他人完成这些步骤,他们可能没有在路径中安装命令行工具,或者不知道如何使用它们,等等。他们不是编码员。 (是的,我知道这听起来很奇怪;我继承了这种情况。)

约束 2:我们希望将其保留为一个简单的 IntelliJ 项目,而不是转换为 Maven、Ant 或 Gradle 等。

【问题讨论】:

    标签: intellij-idea jar


    【解决方案1】:

    同事解决了问题。

    简答:

    从 Artifacts 配置对话框的 Output Layout 选项卡中删除所有其他 jars/库。

    更长的答案:

    你还是做文件/项目结构...

    然后在项目设置中,单击工件。

    然后您仍然单击加号按钮(第二列)以创建新的工件设置。

    诀窍是窗口第三列中的“输出布局”选项卡。突出显示除项目的编译输出之外的所有条目并删除所有其他条目(单击该选项卡下的减号按钮,直接在 your_project.jar 上方)

    在我的笔记本电脑上,这会导致它暂停几秒钟;我以为它什么都没做,最后它反映除了“'my_module'编译输出”之外的一切都没有了

    还要检查“Build on make”(供您稍后进行构建/重建项目时使用)

    如果你需要一个完整的 jar 和一个精简的 jar,你可以有多个不同名称的 Artifact 配置,它们将默认到不同的输出目录。

    【讨论】:

      猜你喜欢
      • 2015-07-05
      • 1970-01-01
      • 2022-01-07
      • 2011-07-04
      • 2014-08-20
      • 1970-01-01
      • 2023-03-24
      • 2021-03-03
      • 2017-01-29
      相关资源
      最近更新 更多