что происходит, когда мы создаем веб-проект Java - PullRequest
2 голосов
/ 10 июня 2011

Я новичок в J2EE и не могу понять структуру каталогов, созданную при создании веб-проекта Java.После небольшого поиска я понял, что мы храним в WEB-INF, но
1) я не могу понять, что мы храним в META-INF?
2) как создается целевая папка?
3)где мы упоминаем, что все файлы должны быть помещены в целевую папку?

Я использую Maven для создания проекта, основанного на Spring-Hibernate.

заранее спасибо

Ответы [ 3 ]

4 голосов
/ 10 июня 2011

1) Для чего нужен META-INF?

2) Maven создает целевую папку для вас.Это место, где все плагины Maven выводят свою работу по умолчанию.

3) Maven имеет механизмы для исключения файлов из него.

Ключом к пониманию Maven является то, что Maven работает по соглашения.Это означает, что Maven сделает очень многое, почти без усилий с вашей стороны, если вы построите свой проект в соответствии с ожиданиями Maven.Например, вот как вы различаете классы Java и ресурсы в исходном каталоге:

src/main/java/com/mycompany/MyObj.java  
src/main/resources/my/company/spring.context.xml  
src/test/java/com/mycompany/MyObjTest.java  
src/test/resources/my/company/spring.context.xml

Когда вы запустите mvn test, он скомпилирует все это, переместит его соответствующим образом в целевую папку, загрузитбегун JUnit и даст вам путь к классу, который позволит Spring иметь легкий доступ к контексту Spring в папке test.Он запустит тесты и отбросит отчеты под целевой.

Maven не похож на Ant.В Ant вы должны рассказать все.Maven работает с противоположной стороны в том смысле, что он принимает все по умолчанию, пока вы не укажете обратное.

2 голосов
/ 10 июня 2011

Это обычная проблема, потому что java стал настолько большим. Часто трудно сказать, где заканчивается одна технология и начинается другая. Вы должны ознакомиться с документацией для всех различных компонентов, которые вы используете.

Например, если у вас есть папка 'target', то я предполагаю, что вы используете maven. Maven - это утилита Java, используемая для управления зависимостями. Когда вы 'mavenize' проект, вы соглашаетесь придерживаться нескольких стандартов, и Maven, в свою очередь, выполняет большую часть тяжелой работы для вас (компиляция кода, поиск зависимых библиотек и выполнение тестов). Часть того, что делает maven, это создание стандартных каталогов maven в этом случае 'target'

больше информации о Maven - http://maven.apache.org/

Что касается META-INF, то это часть спецификации Java EE. У него действительно есть цель, связанная с упаковкой и развертыванием, но вы, как правило, не будете использовать ее очень часто. Как правило, тот же принцип, что и Maven. Вы придерживаетесь стандарта Java EE, и совместимые с Java EE инструменты выполняют большую часть работы за вас.

Для получения дополнительной информации перейдите по этой ссылке - http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/packaging_deployment/index.html

В общем, чтобы понять это, вы должны ознакомиться с некоторыми учебными пособиями по Java EE и обратиться к примерам и документации вашего контейнера.

0 голосов
/ 10 июня 2011

1) Какова цель META-INF
2-3) Целевая папка создает Macven, она управляет всеми зависимостями и т. Д .: one , два

...