首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >项目的IntelliJ创意生成JAR :不包括库

项目的IntelliJ创意生成JAR :不包括库
EN

Stack Overflow用户
提问于 2015-04-27 09:55:33
回答 1查看 1.3K关注 0票数 0

我正在使用IntelliJ Idea (14.1.2)开发一个简单的java命令行应用程序。

我的应用程序由两个模块组成:

  • 一个只包含" main“类的主模块。
  • 一个库模块,它包含实际的代码“做事情”(这个模块还包括并使用了一个maven库)

在从IntelliJ内部进行调试时,一切都可以工作,但现在我希望构建一个JAR文件,以便在IDE之外使用该工具。因此,正如IntelliJ文档所建议的,我使用“工件”菜单来设置在构建时生成的JAR工件。

jar看起来构建正确,但它没有。问题是:来自我的库模块的代码不包含在JAR中,只有来自主模块的代码是!事实上,最奇怪的是,我的库模块包含的maven库的代码包含在jar中,而不是我的模块库本身的代码!这显然意味着,当主程序试图使用库模块中的类时,最终的jar就会抛出一个ClassNotFound异常。

我不知道我做错了什么,所有的依赖项都设置好了,在Artifact菜单中,我告诉它在jar中包含依赖项.

编辑:这是由IntelliJ创建的脚本,所有这些似乎都是有序的:

代码语言:javascript
复制
<component name="ArtifactManager">
      <artifact type="jar" build-on-make="true" name="delta.desktoptools.manifestgenerator:jar">
        <output-path>$PROJECT_DIR$/out/artifacts</output-path>
        <root id="archive" name="delta.desktoptools.manifestgenerator.jar">
          <element id="module-output" name="delta.desktoptools.manifestgenerator" />
          <element id="module-output" name="delta.desktoptools.lib" /> <!-- This doesn't get included :( -->
          <element id="extracted-dir" path="$MAVEN_REPOSITORY$/com/github/javaparser/javaparser-core/2.0.0/javaparser-core-2.0.0.jar" path-in-jar="/" />
        </root>
      </artifact>
    </component>

编辑:我的工件配置的屏幕,更清晰。如您所见,我的库模块的编译输出包含在工件中,但在最后的JAR中没有。

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 10:06:52

您是使用intellij来创建Jar还是依赖于maven任务?

如果您依赖于pom,那么您需要添加包含依赖项的构建,具体如下所示:How can I create an executable JAR with dependencies using Maven?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29892487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档