Ошибка пакета Maven: org.apache.commons-lang не существует (Java) - PullRequest
20 голосов
/ 07 сентября 2011

Я использую 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 где-нибудь еще?

Ответы [ 4 ]

26 голосов
/ 07 сентября 2011

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

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

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

$ mvn dependency:copy-dependencies

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

2 голосов
/ 16 мая 2019

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

    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.1</version>
    </dependency>
0 голосов
/ 12 июня 2019

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

0 голосов
/ 25 октября 2016

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...