当前位置: 首页 > 面试题库 >

如何从命令行编译具有所有依赖项的Maven项目?

钮高朗
2023-03-14
问题内容

我有一个Maven项目,我通常可以从eclipse编译并运行它,但是当我从命令行编译它时,它的依赖项丢失了,并且出现了错误。只有下载依赖项并将它们添加到c:/
Java / jdk / jre / lib / ext后,我才能编译项目

如何从控制台行编译项目及其依赖项,而无需将其手动添加到jdk?编译器可以以某种方式读取Maven依赖项吗?

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>TCPPing</groupId>
  <artifactId>TCPPing</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>commons-net</groupId>
        <artifactId>commons-net</artifactId>
        <version>3.3</version>
    </dependency>
        <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.1.6</version>
    </dependency>
  </dependencies>
</project>

问题答案:

从具有某些maven支持(Eclipse,IntellIJ)的IDE中运行应用程序应该非常简单。这些IDE将注意创建正确的类路径。

如果要手动执行此操作,请尝试以下操作:

切换到包含pom.xml的目录,执行maven命令:

mvn clean install

这将编译您的项目并创建您在pom.xml文件中定义的jar。它可以使Maven阶段运行得很干净,并且每个阶段都可以安装(编译,测试等)。

然后收集用作依赖项的所有jar文件(运行项目所需):

mvn dependency:copy-dependencies

这将执行依赖项插件,该插件会将所有依赖项复制到中target/dependency

然后,您可以使用以下方法运行您的main方法:

cd target/
java -cp TCPPing-0.0.1-SNAPSHOT.jar:dependency TCPPing

-cp定义类路径(所有位置/包含类的jar文件/文件夹)。TCPPing是您运行的具有主要方法的类。

请注意,它:是针对Linux / Mac的-我认为Windows使用了;



 类似资料:
  • Java和Maven新手。 我试图配置我的应用程序,以便我可以通过cmd线生成一个jar,其中包含我所有的依赖项。 据我所知,我正在正确设置Pom以使用此插件:https://github.com/javafx-maven-plugin/javafx-maven-plugin 以下是我在Pom中的依赖项: 在我的

  • 问题内容: 我有一个写在Apache Commons顶部的辅助库,当我尝试对其进行javac处理(以便可以将其放入jar中)时,它很抱怨地说,它不知道我在说什么关于何时参考commons.jar中的内容。 如何包含一个jar以便javac可以编译? 问题答案: 对于Windows: 对于Unix或Mac(感谢Dawood提示): 意思是:

  • 在实际使用之前,我试图从maven项目下载所有插件依赖项。 我试过跑步: 这成功地下载了它的插件及其部分依赖项。例如,对于exec插件,我得到: 但是,当您实际使用插件时,例如: 事实证明,它的依赖项尚未完全下载。 这是出乎意料的,因为根据文档,excludeTransitive属性在默认情况下为false(显式设置它没有帮助)。在我看来,它只是从定义的插件下载了一个级别的可传递依赖项。 有没有办

  • 我是maven的新手。(我已经搜索了几个小时的答案,但没有运气。mvn依赖:复制依赖不能解决我的问题)我需要复制项目的所有依赖项(以jar的形式),如果我的一个jar依赖于另一个工件,也复制该工件。 示例project1 pom。xml: “project1”依赖于project2。人工制品罐子当我使用“mvn依赖项:复制依赖项”时,我得到了project2。人工制品但我没有得到project3。

  • 本文向大家介绍Apache Maven 创建具有项目所有依赖项的.jar文件,包括了Apache Maven 创建具有项目所有依赖项的.jar文件的使用技巧和注意事项,需要的朋友参考一下 示例 要创建包含所有依赖项的JAR,可以使用内置描述符格式jar-with-dependencies。以下示例package使用此内置描述符并声明的主类来配置绑定到该阶段的Assembly Plugin的执行co

  • 问题内容: 我需要将我们的maven build java项目发布给远程质量检查团队。为此,我想下载所有依赖项,并发送给他们,这样他们就不需要下载它们了。 当前,所有依赖项都在pom.xml文件中定义,并且我们使用mvn install或mvn包来构建项目。一些项目成员使用uber jars,其他一些项目则使用jars +依赖项来执行。 什么是最简单的方法来预打包相关的jar文件,以使从Inter