Ошибка пакета 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 где-то еще?
Ответы
Ответ 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.