Java 如何将我的maven项目部署为jar文件,该文件将使用pom文件获取其依赖项?

Java 如何将我的maven项目部署为jar文件,该文件将使用pom文件获取其依赖项?,java,maven,intellij-idea,deployment,jar,Java,Maven,Intellij Idea,Deployment,Jar,我见过许多关于为maven项目部署jar文件的线程。但我有不同的要求 我的maven项目中没有主类 我的pom.xml文件中有一些依赖项 我需要部署一个较小的jar文件,它可以通过pom文件获取依赖项。(我目前使用IntelliJ IDEA部署了具有依赖项的jar,现在它是56 MB。我需要使用上面的方法或其他方法使它的容量更小) 谢谢。当您使用maven构建jar时(如clean install或clean deploy),jar: 不需要有主类 使用pom.xml中的依赖项 除非您特别告诉它

我见过许多关于为maven项目部署jar文件的线程。但我有不同的要求

  • 我的maven项目中没有主类
  • 我的pom.xml文件中有一些依赖项
  • 我需要部署一个较小的jar文件,它可以通过pom文件获取依赖项。(我目前使用IntelliJ IDEA部署了具有依赖项的jar,现在它是56 MB。我需要使用上面的方法或其他方法使它的容量更小)
  • 谢谢。

    当您使用maven构建jar时(如
    clean install
    clean deploy
    ),jar:

  • 不需要有主类
  • 使用pom.xml中的依赖项
  • 除非您特别告诉它,否则不会将外部依赖项捆绑到其中

  • 因此,您的要求似乎会自动得到满足。

    请尝试以下步骤:-希望这将对您有所帮助 pack200可以大大减少罐子的大小。 通过以下方式检查您的依赖关系:

    mvn dependency:analyze
    
    或者像这样查看dep树:

    mvn dependency:tree
    

    是否有未使用的依赖项?如果是,请删除pom.xml文件中未使用的依赖项。

    我终于找到了解决方案。 正如@JF Meier解释的那样,
    mvn clean install
    完成了这项工作。但在此之前,我必须转到
    测试
    包中的步骤定义。实际上,这些步骤定义不属于
    test
    包,因为它不会测试我的项目


    谢谢大家。

    @Ivan Aracki我使用了“mvn clean install”,创建的jar文件与我之前通过“依赖性构建”创建的jar文件不一样。在jar文件中,我看不到pom.xml事件pom.xml不在jar的主目录中,而是元信息的一部分。你需要明确你所说的“工作”是什么意思。如果不捆绑依赖项,就不能用java启动jar,而是需要指定类路径。假设您创建了一个需要第三方java库的java项目。现在,您需要将Java项目绑定为另一个库,而不是一个可执行的jar。如果不将所有第三方jar绑定到jar中,有没有一种方法可以做到这一点,以便在以后有人将您的jar作为库导入时,它自动获取您的库jar所需的其他库。