Подтвердить что ты не робот

Ошибка пакета Maven: org.apache.commons-lang не существует (Java)

Я использую MyEclipse для разработки действительно простого проекта Java Struts. Все работало нормально, пока я не захотел использовать класс StringUtils в org.apache.commons.lang. В MyEclipse я импортировал пакет, например

import org.apache.commons.lang.StringUtils;

Я добавил файл Jar для commons-lang-2.4 в мой путь сборки. Все это прекрасно работает и денди, и я получаю Intellisense и никаких ошибок в Eclipse или что-то еще. Теперь, когда я иду, чтобы сделать mvn clean package, я получаю сообщение об ошибке

Пакет org.apache.commons.lang не существует

Я проверил в своем файле war/Pom.xml и объявил его как зависимость

<dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.0.1</version>
    </dependency>

    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.4</version>
    </dependency>

</dependencies>

Из моего исследования я решил, что Maven должен загрузить пакет и установить его в мой локальный репозиторий, если он не существует. Я проверил репозиторий, и там был файл jar. Я понял, что файл jar должен быть поврежден, поэтому я удалил папку commons-lang, чтобы получить новую загрузку commons-lang. Теперь, когда это ударит меня, после того, как я удалил его из локального репозитория и запустил mvn clean package, он выходит и загружает Commons-lang-2.1.pom и jar (хотя pom.xml имеет 2.4) НО все еще дает сбой компиляции, говоря, что пакет org.apache.commons.lang не существует.

Я не использовал Maven очень долго, поэтому не знаю, как это сделать. Я что-то упускаю? Нужно ли добавлять зависимостей в другой файл pom.xml где-то еще?

4b9b3361

Ответ 1

Попробуйте выполнить следующие команды и просмотрите вывод:

$ mvn dependency:tree
$ mvn help:effective-pom

Ищите commons-lang, возможно, что-то привлечет ваше внимание, как исключения или переопределения зависимостей. Также:

$ mvn dependency:copy-dependencies

копирование commons-lang JAR на target?

Ответ 2

Помогло добавление следующей зависимости в pom.xml в теге зависимостей:

    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.1</version>
    </dependency>

Ответ 3

Я сделал "mvn clean install -U" без settings.xml, поэтому он ошибся. Затем я добавил settings.xml, сделал "mvn clean install -U", он сказал "ошибка: org.apache.commons-lang не существует". Я знаю, что код был успешно собран на другой машине. Так что это был не мой код. Примерно через 2 или 3 часа я наконец понял, что это был .m2\хранилище было повреждено моим первым запуском. Так что просто удалите папку "хранилище" и запустите "mvn clean install -U", и все прошло успешно.

Ответ 4

В src/main/java будет папка .auth. Откройте папку, перейдите в файл AuthController.java и удалите строку импорта io.swagger. Restart.