Вот макет исходного кода, созданного 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.