IntelliJ не может найти пользовательскую библиотеку [Maven] - PullRequest
0 голосов
/ 11 января 2020

Когда я писал свой первый «настоящий» проект java (приложение todo в консоли), я понял, что использую множество методов, которые можно легко превратить в мою собственную библиотеку (простой проект Maven). Я добавил папку root в свой основной процесс с помощью Файл> Структура проекта> Модули> Зависимости> Java и выбрал папку root - Панель инструментов. Но когда я набираю

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

Теперь снимок экрана моих зависимостей dependencies

IntelliJ Idea Ultimate 2019.3.1 JDK 11.0.1 Manjaro Linux

Любая помощь будет принята с благодарностью

По просьбе, пом. xml todo:

<?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>

и пом. 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>

1 Ответ

3 голосов
/ 11 января 2020

Сделать проект библиотеки слишком maven-проектом (со своей собственной группой, идентификатором артефакта и версией). Чем добавить в зависимость других проектов Maven. (Это будет работать как внутри, так и снаружи IDE)

Как только вы начнете с maven, продолжайте работать с maven, попробуйте добавить зависимости:

Вы должны установить зависимость с помощью maven (либо из команды или из IDE), запустив 'mvn clean install' (это основа c для системы упаковки, такой как 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>

...