【问题标题】:Maven project giving errorMaven项目给出错误
【发布时间】:2015-06-11 01:56:25
【问题描述】:

在 intellij 中将项目设置为像这样的 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>com.yourcompany.test</groupId>
    <artifactId>jreddit-testing</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>jreddit-testing</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <dependencies>
        <dependency>
            <groupId>com.github.jreddit</groupId>
            <artifactId>jreddit</artifactId>
            <version>1.0.2</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    </project>

当我运行 sudo mvn clean install 时,它会毫无错误地安装所有内容。

在运行项目时出现错误..

Error:java: directory not found:
/Users/stingRay/Documents/workspace/jreddit/target/generated-sources/annotations

【问题讨论】:

  • 你在哪里调用sudo mvn clean install/Users/stingRay/Documents/workspace/jreddit/ 存在吗?
  • 在没有 sudo 的情况下执行 mvn 命令。它可能已经为 root 用户创建了目标文件夹,因此其他进程无法读取?
  • @KarlRichter 是的,该文件夹存在,我在 jreddit 文件夹中调用它。
  • @wemu mvn 将不起作用,除非 sudo 在它前面
  • /Users/stingRay/Documents/workspace/jreddit/ 有什么权限?哪个用户正在运行 intellij?

标签: java maven intellij-idea reddit jreddit


【解决方案1】:

不确定这是否能解决您的问题,但 cmets 没有足够的空间 :)

我认为环境变量没有正确配置。我建议不要使用 sudo 和 maven。如果一切配置正确,则根本没有必要。

maven 的下载页面包含操作说明:http://maven.apache.org/download.cgi(向下滚动)

简而言之:

  • 下载 Java 开发工具包(我不使用 Linux 的数据包管理器,以防止 root 能够执行 Java 命令或意外运行服务器)。看起来您正在使用 MacOS?所以从 oracle 下载 dmg 文件。
  • 下载 Maven 存档并解压缩(它也可以在共享目录中,以便系统上的每个用户都可以读取)
  • 重要的部分:设置环境变量。为方便起见,您必须设置 JAVA_HOME、M2_HOME、可选的 MVN_OPTS 和 PATH - 因此“mvn”在您的终端中运行而无需 sudo。

网上有指导您完成此操作的教程,例如:http://bitbybitblog.com/environment-variables-mac/

如果您使用 IntelliJ 或终端,则 .bash_profile 文件就足够了。编辑 .plist 文件仅适用于 OSX 内部工具。在 IntelliJ 中,一旦设置了 M2_HOME 变量(如果我没记错的话)并且 IntelliJ 重新启动,它将起作用。

请注意,您可能需要清理已经存在的文件(以确保您的用户可以在不使用 sudo 的情况下编写它们)。含义:

  • /Users/stingRay/Documents/workspace/jreddit/target/
  • /Users/stingRay/.m2/repository(或本地 maven 存储库所在的位置)

希望这会奏效:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2015-10-21
    • 1970-01-01
    • 2012-09-06
    相关资源
    最近更新 更多