【问题标题】:Maven project is missing package when compiling from terminal从终端编译时,Maven 项目缺少包
【发布时间】:2020-10-11 21:52:13
【问题描述】:

我目前正在尝试从命令行编译我的第一个 maven 项目,但每当我运行此命令时:

C:\Users\zacha\git\INF2050\tp1\PELZ07039904\src\main\java>javac analyse.java

我把这个拿回来了 analyse.java:7: error: package org.apache.commons.io does not exist

但是当我直接从 InteliJ 运行该项目时,它运行得非常好

这是我的pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<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>org.example</groupId>
    <artifactId>PELZ07039904</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.8.0</version>
        </dependency>
    </dependencies>

</project>

我检查了一下,我所有的 jar 都在我的 .m2 文件中,所以我不确定为什么会出现这个错误。

【问题讨论】:

  • 要使用 Maven 编译您的项目,您必须使用“mvn”命令,而不是“javac”。使用 pom.xml 文件进入目录并执行“mvn clean compile” - Maven 将首先清理目标目录,然后将已编译的类放在那里。

标签: java maven package


【解决方案1】:

javac 对 maven 及其依赖项一无所知。它所能做的就是编译一个类。就是这样。 相反,您需要使用 Maven 特定命令。

Maven 提供了一个命令行工具。

要通过命令行构建 Maven 项目,请从命令行运行 mvn 命令。该命令应在包含相关 pom 文件的目录中执行。您需要为 mvn 命令提供要执行的生命周期阶段或目标。

Maven 工具读取 pom 文件并解析项目的依赖关系。 Maven 验证本地存储库中是否有所需的组件。本地存储库位于用户主目录的 .m2/repository 文件夹中。

例如 mvn clean install 命令触发 jar 打包。这包括编译源代码、执行测试以及将编译后的文件打包到 JAR 文件中。作为最后一步,安装阶段将生成的工件安装到本地存储库中,因此它可以用作其他 Maven 构建的依赖项。

查看完整指南here

【讨论】:

  • 我明白了,所以我安装了 maven 并构建了项目,但这并没有解决我的问题,因为我必须能够从命令行运行我的程序,而 java 仍然找不到我的包。
  • 我先做 mvn clean package 然后 mvn install 两次构建都是成功的
猜你喜欢
  • 2014-08-09
  • 2015-01-02
  • 2021-12-19
  • 2013-08-29
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 1970-01-01
  • 2013-12-09
相关资源
最近更新 更多