【问题标题】:IntelliJ can't find custom library [Maven]IntelliJ 找不到自定义库 [Maven]
【发布时间】:2020-04-28 20:30:33
【问题描述】:

当我编写我的第一个“真正的”java 项目(控制台中的 todo 应用程序)时,我意识到我使用了很多可以轻松地制作成我自己的库(简单的 Maven 项目)的方法。我使用 File>Project Structure>Modules>Dependencies>Java 将根文件夹添加到我的主过程中,并选择了根文件夹 - Toolbox。但是当我输入

import org.toolbox.Tools.*;

一切都很好,用法也很好,但是编译失败。 首先是错误信息:

Error:(5, 19) java: package org.toolbox does not exist
Error:(6, 25) java: package org.toolbox.Tools does not exist
Error:(10, 69) java: package Tools does not exist
Error:(13, 9) java: cannot find symbol
  symbol:   class Tools
  location: class org.todo.ToDo
Error:(13, 27) java: cannot find symbol
  symbol:   class Tools
  location: class org.todo.ToDo
Error:(16, 9) java: cannot find symbol
  symbol:   class STATE
  location: class org.todo.ToDo
Error:(18, 23) java: cannot find symbol
  symbol:   variable STATE
  location: class org.todo.ToDo

现在是我的依赖项的屏幕截图

IntelliJ Idea Ultimate 2019.3.1 JDK 11.0.1 Manjaro Linux

任何帮助将不胜感激

按照要求,todo的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.todo</groupId>
    <artifactId>TO-DO</artifactId>
    <version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
               <release>11</release>
            </configuration>
        </plugin>
    </plugins>
</build>

</project>

还有我图书馆的 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.toolbox</groupId>
    <artifactId>Toolbox</artifactId>
    <version>1.0-SNAPSHOT</version>

    // because i was getting an error with maven compiler defaulting to        1.5
    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
    </properties>


</project>

【问题讨论】:

    标签: java maven intellij-idea import package


    【解决方案1】:

    使库项目也成为一个 maven 项目(具有自己的组、工件 ID 和版本)。 比增加其他 maven 项目的依赖性。 (这将在 IDE 内部和外部工作)

    一旦你开始使用 maven,继续使用 maven,尝试添加依赖项:

    您必须使用运行“mvn clean install”的 maven(从命令行或从 IDE)安装依赖项(这是 maven 等打包系统的基本功能)。

    <?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.todo</groupId>
    <artifactId>TO-DO</artifactId>
    <version>1.0-SNAPSHOT</version>
    
            <!-- try to add dependancies -->
            <dependencies>
                <dependency>
                    <groupId>org.toolbox</groupId>
                    <artifactId>Toolbox</artifactId>
                    <version>1.0-SNAPSHOT</version>
                </dependency>
            </dependencies>
    
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.8.0</version>
                        <configuration>
                           <release>11</release>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
    

    【讨论】:

    • 问题是当我尝试输入工件 ID“工具箱”时,它找不到我的。我认为它只适用于大型公众。
    • @KamilSuhak 您应该将您的工具箱也导入为 maven 项目,或者在本地 maven 存储库中构建(以正确的版本)。查看两个项目的 pom.xml 会很有帮助
    • @KamilSuhak 您必须使用运行“mvn clean install”的 maven(从命令行或从 IDE)安装依赖项(这是 maven 等打包系统的基础)。不要轻易放弃,像 maven 这样的打包系统对于自动化构建、配置和发布任务非常有用
    • @KamilSuhak 你有没有想过日食?我不想发动战争,但在我看来,maven 集成更好(尤其是你可以在工作区中使用其他 maven 依赖项,而无需在任何时候进行更改)
    • 我是 maven 新手,所以我不知道哪个更好,但我喜欢几乎所有东西都使用相同的品牌。我有 jetbrains 学生套件,所以我只使用他们的 IDE
    猜你喜欢
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多