Вот макет исходного кода, созданного Maven Quickstart CLI . Кроме того, это рекомендуемый макет стандартного приложения для гобеленов.
├── build.gradle ├── gradle │ └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── pom.xml ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └── MyFirstApplication │ │ │ ├── components │ │ │ ├── data │ │ │ ├── entities │ │ │ ├── pages │ │ │ └── services │ │ ├── resources │ │ │ ├── com │ │ │ │ └── example │ │ │ │ └── MyFirstApplication │ │ │ │ ├── components │ │ │ │ ├── logback.xml │ │ │ │ └── pages │ │ │ │ └── Index.properties │ │ │ ├── hibernate.cfg.xml │ │ │ └── log4j.properties │ │ └── webapp │ │ ├── favicon.ico │ │ ├── images │ │ │ └── tapestry.png │ │ ├── mybootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap-theme.css │ │ │ ├── fonts │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── js │ │ └── WEB-INF │ │ ├── app.properties │ │ └── web.xml │ ├── site │ │ ├── apt │ │ │ └── index.apt │ │ └── site.xml │ └── test │ ├── conf │ │ ├── testng.xml │ │ └── webdefault.xml │ ├── java │ │ └── PLACEHOLDER │ └── resources │ └── PLACEHOLDER └── target ├── classes │ ├── com │ │ └── example │ │ └── MyFirstApplication │ │ ├── components │ │ ├── data │ │ ├── entities │ │ ├── logback.xml │ │ ├── pages │ │ │ └── Index.properties │ │ └── services │ ├── hibernate.cfg.xml │ └── log4j.properties ├── m2e-wtp │ └── web-resources │ └── META-INF │ ├── MANIFEST.MF │ └── maven │ └── com.example │ └──MyFirstApplication │ ├── pom.properties │ └── pom.xml ├── test-classes │ └── PLACEHOLDER └── work ├── jsp ├── sampleapp.properties └── sampleapp.script
Макет по умолчанию организован как внутренний формат файла WAR . Использование формата WAR помогает запустить приложение без упаковки и развертывания. Этот макет является всего лишь предложением, но приложение может быть организовано в любом формате, если при развертывании оно упаковано в правильный формат WAR.
Исходный код можно разделить на следующие четыре основных раздела.
Код Java — Все исходные коды Java находятся в папке / src / main / java . Классы страниц гобелена помещаются в папку «Страницы», а классы компонентов гобелена помещаются в папку компонентов. Классы обслуживания гобеленов находятся в папке сервисов.
Ресурсы ClassPath. В Tapestry большинство классов имеют связанные ресурсы (XML-шаблон, файлы JavaScript и т. Д.). Эти ресурсы находятся в папке / src / main / resources . Классы страниц Tapestry имеют связанные ресурсы в папке «Pages», а классы компонентов Tapestry — связанные ресурсы в папке Components. Эти ресурсы упакованы в папку WEB-INF / classes WAR.
Ресурсы контекста. Это статические ресурсы веб-приложения, такие как изображения, таблица стилей и библиотека / модули JavaScript . Они обычно помещаются в папку / src / main / webapp и называются Context Resources . Кроме того, файл описания веб-приложения (Java-сервлета), web.xml, находится в папке контекстных ресурсов WEB-INF .
Тестовый код — это дополнительные файлы, используемые для тестирования приложения и помещенные в папки src / test / java и src / test / Resources. Они не упакованы в WAR.