Maven build производит пустую банку - PullRequest
0 голосов
/ 15 июля 2011

Я новичок в Maven и пытаюсь сделать Maven за 5 минут Я пытался выяснить, почему пакет mvn создает пустую банку. Я точно следую инструкциям, но это не работает.

Я сделал архетип: сгенерировать цель. Это создало структуру проекта my-app в / bin. Затем, когда я попытался запустить пакет mvn, он сказал

[INFO] Невозможно выполнить ресурсы mojo:. Требуется проект с существующим ПО m.xml, но при сборке он не используется.

Я попробовал несколько предложений и, наконец, попытался поместить файл pom.xml в проект my-app на один уровень выше непосредственно в /bin.

.

Теперь пакет mvn работает.

Цель была создана в том же каталоге, что и my-app. Но банка была пуста ... не было файлов классов, и попытка ее выполнить привела к исключению classnotfoundexception.

Кроме того, mvn должен работать только изнутри / bin. По крайней мере, это со мной. Но я вижу несколько иллюстраций, где команды mnv выполняются из случайных каталогов, таких как здесь

Также, как создавать многомодульные проекты на Maven?

Есть предложения, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 15 июля 2011

Я думаю, что вы пытались запустить Maven в каталоге bin Maven. Вы должны перейти в каталог my-app, который был сгенерирован, и запустить его там. Maven требует очень специфической структуры проекта относительно pom.xml. Когда вы скопировали pom.xml, ваши java-файлы и ресурсы остались внутри my-app, поэтому Maven не нашел ни одного и создал пустой jar.

0 голосов
/ 11 июля 2014

maven ожидает, что исходные файлы будут присутствовать в определенном месте. Если ваша установка испорчена, как мне кажется, вам нужно будет явно указать ссылку на ее местоположение с помощью элемента.

Однако, это случилось однажды, даже когда все было правильно. Работал на Mac, но генерировал пустой jar на Linux. Добавление элемента явно исправлено.

0 голосов
/ 15 июля 2011
  1. Сразу после установки Maven, вы должны добавить его в PATH вашей ОС.Это упражнение для ОС, не связанное с maven, но мы наверняка поможем вам, если вы сообщите нам, что вы используете.
  2. После выполнения # 1 вы сможете запускать maven из любого места.Вот что делает его добавление в PATH.Однако вы сможете запустить сборку только в том случае, если вы запустите ее из каталога, содержащего файл pom.xml (хотя есть аргументы командной строки, которые также позволяют вам изменить это).
  3. Когда вы генерируете проект из архетипа (используя mvn archetype:generate), он создает каталог проекта для вас и помещает в него файл pom.xml и некоторые папки и файлы.Прочитав # 2, вы должны понимать, что это означает, что сразу после mvn archetype:generate вам нужно cd <project dir>. Тогда вы готовы построить свой проект maven.
  4. Когда вы находитесь в каталоге вашего проекта (помните, что именно там находится pom.xml), mvn package создаст JAR(или WAR, EAR, bundle и т. д.) и mvn clean удаляют все артефакты сборки, оставляя только исходный код.
  5. Даже не беспокойтесь о многомодульных проектах, пока не разберетесь с основами.Нет, правда, пока у вас не будет значительно больше, чем основы.Только не беспокойтесь об этом.

Если что-то неясно, просто спросите.

...