проблема затемнення maven-archetype-webapp


75

Я намагаюся створити дуже простий веб-додаток з Maven і затемненням, але у мене немає ніякої радості, насправді зворотного радості.

Я йду до Файл -> Новий проект, вибираю Maven Project і вибираю maven-archetype-webapp. Коли я закінчую роботу майстра, створюється структура webapp, але без каталогу 'java' під основним, лише ресурси та webapp.

Тож я клацаю правою кнопкою миші на main та вибираю новий клас. Клас створюється за допомогою ресурсів (?!), І, крім того, здається, що його компіляція у Java не існує. Я можу робити дурні помилки, і ніякого підсвічування синтаксису не виникає. Це як Java не розпізнає це.

В якості альтернативи я спробував створити новий каталог «Java» під основним, де він повинен бути, але все ще з тими самими неіснуючими симптомами Java.

Що дає? Це зводить мене з розуму ..

Дякую всім!


Хлопці - велике спасибі! Я просто спробував просте рішення Паскаля, і воно працює. Я спробую все, що ви всі пропонуєте.
Джеремі

Відповіді:


85

Просто створіть javaкаталог під main(тобто src/main/java) і клацніть правою кнопкою миші на своєму проекті та виберіть Maven> Оновити конфігурацію проекту .


10
Я знаю, що це старе запитання, але воно все ще є найпопулярнішим хітом у Google, тому просто цікаво, чи може хтось відповісти на запитання tonga нижче та пояснити, чому Maven не просто включає це за замовчуванням? Наприклад, чи існує в Maven школа думок про те, що ця структура каталогів чомусь не є "хорошою" для веб-програм?
Мік,

22
  1. За замовчуванням, коли ви створюєте проект з архетипом maven "maven-archetype-webapp", він не створює жодних java та тестових папок.
  2. Ви можете вручну додати ці папки як src / main / java та src / test / java.
  3. Після додавання цих папок клацніть правою кнопкою миші на своєму проекті у провіднику проектів, перейдіть до maven> update project conf.

6
Це найдивніша частина Мейвена. Чому б не створити src / main / java, src / test / java, src / test / resources разом при створенні архетипу webapp? Хіба це не помилка Maven?
tonga

5

Просто створіть каталог java під main (тобто src / main / java) і клацніть правою кнопкою миші -> Build Path -> Use the Source Folder


4

Все інше, ймовірно, буде залежати від архетипу та того, як ви налаштували свій pom.xml. Структура каталогів, яку ви описуєте, ідентична тій, що maven-archetype-webappстворюється в командному рядку.


3

Це чудова стаття, яку я прочитав, коли мені було важко зрозуміти, як створити кілька проектів в одному за допомогою Maven. Зокрема, у цій статті пояснюється, як налаштувати веб-проект (військовий файл) для використання внутрішнього стандартного Java-проекту (jar-файлу).

Якщо ви добре знаєте Maven, перейдіть до розділів наприкінці: Як мені будувати інші типи проектів? Як побудувати більше одного проекту одночасно?

http://maven.apache.org/guides/getting-started/index.html#How_do_I_build_other_types_of_projects

Якщо ви ще не знайомі з Maven, перевірте:

http://www.mkyong.com/spring/quick-start-maven-spring-example/

Повірте, mkyong знає, що там!


1
Дякуємо за посилання на розуміння способу використання Maven кількома проектами.
asgs

3

Просто створіть нову папку з іменем java під src / main /

Потім клацніть правою кнопкою миші на проект і виберіть maven-> оновити проект


2

Існує можливість створити вихідний каталог у eclipse. Або ви можете перейти до побудови шляху під властивостями проекту та додати існуючий каталог як вихідний каталог.

Якщо ви збираєтеся використовувати нестандартну структуру каталогів, вам доведеться вказати її у maven


2

створюється структура веб-додатку, але без основного каталогу "java"

Створіть src / main / java самостійно.

крім того, здається, жодної компіляції з нього Java. Я можу робити дурні помилки, і ніякого підсвічування синтаксису не виникає. Це як Java не розпізнає це.

після створення відповідної структури dir виконайте команду maven

mvn eclipse:eclipse 

потім оновіть проект у затемненні.

-SE


OP використовує m2eclipse, а не плагін maven-eclipse
Pascal Thivent

Чудово! maven-eclipse-plugin набагато кращий, ніж m2e.
asgs

2

для src / main / java ваш проект >> властивості >> шлях побудови java >> джерело >>
пошук "Ваш проект src / main / java (missin)" >>>

редагувати> ім'я папки >> далі >> Шаблони включення: -----> Додати >> src / main / java OK

і якщо помилки все ще не зникають

>>>  look in Target Runtimes  and check your apache in checkbox

Раніше я отримував помилку компілятора з проханням перейменувати ім'я пакета на main.java.xyz; Після цього кроку Eclipse більше ніколи про це не просити. Поки src / main / java не знаходиться на шляху src. xyz - це моє ім’я пакета. І тепер я можу написати пакунок xyz без помилок. Дякую
Декстер

<plugins> <plugin> <artifactId> maven-compiler-plugin </artifactId> <version> 3.6.1 </version> <configuration> <source> 1.8 </source> <target> 1.8 </target> </ configuration > </plugin> <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-war-plugin </artifactId> <version> 3.1.0 </version> <configuration> <! - - <warSourceDirectory> WebContent </warSourceDirectory> -> </configuration> </plugin> </plugins>
Ліза,

1

в IntelliJ IDEA 13 спочатку потрібно створити папку "java" в головній папці, потім -> перейти до "налаштування відкритого модуля" - для цього ви можете натиснути на назву проекту та натиснути f4-, і встановити мітку папки "java" на " джерело ".


1

Ось моє рішення. Це працює без будь-яких проблем.

Можуть виникнути запитання щодо того, чому потрібні всі ці кроки, і я вважаю, що вони досить справжні. Але це один із способів зробити ваш веб-додаток або будь-який інший компонент, що працює на eclipse, використовуючи Maven із командного рядка .

1) Відкрийте вікно команд

2) mvn архетип: згенеруйте -DgroupId = ваш пакет -DartifactId = ваш проект -DarchetypeArtifactId = ваш архетип. У моєму випадку "maven-archetype- webapp " -DinteractiveMode = false

3) компакт-диск вашого проекту

4) mvn затемнення: затемнення -Dwtpversion = 2,0

5) Перейдіть до файлової системи. Перейдіть до вашого нещодавно створеного проекту. створити папки, а) java під основною
б) тест під src в) java та тестовані ресурси

6) затемнення mvn: чисте

7) mvn затемнення: затемнення -Dwtpversion = 2,0

8) імпортуйте проект свого проекту в eclipse

Дякую, Сід


1

Робіть це навпаки. Спочатку створіть проект webapp, потім додайте фреймворк Maven (в Intellij - проект правою кнопкою миші та виберіть Додати підтримку фреймворка). Це створить потрібні для вас папки.


1

Клацніть правою кнопкою миші проект Maven -> Шлях побудови -> Налаштуйте шлях побудови На вкладці Замовлення та експорт ви побачите повідомлення, наприклад, виберіть "Системна бібліотека JRE" та "Залежності Maven" Клацніть OK Тепер ви можете їх


1

У мене була та сама проблема, навіть коли я додав системну бібліотеку JRE до моєї поточної версії Java, але все ще мав ту саму проблему, тоді я просто видалив системну бібліотеку JRE і додав ще раз, що це спрацювало для мене

  • Щоб видалити системну бібліотеку JRE, клацніть правою кнопкою миші на проекті -> властивості -> шлях побудови Java -> виберіть системну бібліотеку JRE -> видаліть

  • Щоб додати JRE, перейдіть до властивостей-> шлях побудови Java -> додати бібліотеку -> Системна бібліотека JRE -> виберіть JRE -> закінчити


1

Просто додайте нову папку "java" під src / main. вирішить проблему. Оскільки шлях до класу з папкою java вже доступний у файлі .classpath створеного проекту, тому додавання папки java не призведе до помилок. див. нижче запис у файлі .classpath, який дозволяє додавати папку Java.

<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>


0

виникає помилка, коли неправильно вказано системну бібліотеку JRE. Тепер перейдіть на вкладку Бібліотеки та змініть системну бібліотеку JRE на правильну версію.


0

Наступні кроки працюють у eclipse 2020-06

  1. Файл-> Новий-> Проект Maven
  2. Виберіть "Створити простий проект (пропустити вибір архетипу)"
  3. Виберіть упаковку як "війну" (це створить як папки webapp, так і java)
  4. Створіть проект після вказівки ідентифікатора групи та ідентифікатора артефакту
  5. Оновіть pom.xml версіями Java та компілятора, клацніть правою кнопкою миші на проекті, виберіть Maven-> Оновити проект
  6. Якщо проект не має гранчастої форми (він не у фасетній формі, якщо при розширенні проекту в Project Explorer, він не відображає такі деталі, як "Дескриптор розгортання" та "Веб-служби JAX-WS", це сталося в одній із моїх інсталяцій eclipse і я не мав уявлення, чому), тоді виконайте наступні кроки
    1. клацніть правою кнопкою миші на проекті, перейдіть до Властивості, клацніть на Грані проекту, перетворіть у грановану форму, виберіть правильну версію «Динамічний веб-модуль», увімкніть прапорець, а також виберіть правильну версію грані Java.
    2. У цьому вікні відображається "Подальша конфігурація доступна", клацніть на неї та вкажіть папку WebContent. (замінити WebContent на src / main / webapp)
    3. Якщо ви хочете запустити програму на серверах, налаштованих у eclipse, укажіть залежності maven, які будуть розгортатися в "Асамблеї розгортання". Це також розгорне залежності, які "надаються", але я думаю, це добре для тестування. Для фактичного розповсюдження ви можете надати військовий файл, згенерований з пакету maven.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.