# Rebuild Current Frontend Preview ## Goal Rebuild the current Java Web application and refresh the local Tomcat deployment so the user can view the latest frontend effect in the browser. ## What I already know * The user asked to rebuild the program to inspect the new frontend. * The project is a Java 11 Maven WAR application. * Maven produces `target/library-management.war`. * Frontend JSP/CSS assets live under `src/main/webapp`. * Local Tomcat path recorded by prior work is `/home/sjy/apps/tomcat/apache-tomcat-9.0.117/apache-tomcat-9.0.117`. * The Tomcat context should be `/library-management`. ## Requirements * Run a clean Maven package build. * Deploy the new WAR to the local Tomcat `webapps` directory. * Remove the expanded old deployment directory before restart so stale frontend assets are not reused. * Start or restart Tomcat. * Verify the frontend login URL is reachable. * Provide the local browser URL to the user. ## Acceptance Criteria * [x] `mvn clean package` succeeds. * [x] `target/library-management.war` exists. * [x] Tomcat deployment is refreshed with the new WAR. * [x] `/library-management/login` returns HTTP 200. * [x] User receives the local preview URL. ## Out of Scope * Source code changes. * New UI requirements or redesign decisions. * Database schema or seed data changes. ## Technical Notes * Build command from README: `mvn clean package`; fallback Maven path: `/home/sjy/.sdkman/candidates/maven/current/bin/mvn clean package`. * Deployment target: `/home/sjy/apps/tomcat/apache-tomcat-9.0.117/apache-tomcat-9.0.117/webapps/library-management.war`. * Build completed at 2026-04-28 20:21 +0800. * Previous Tomcat deployment was moved to `/home/sjy/apps/tomcat/apache-tomcat-9.0.117/apache-tomcat-9.0.117/deploy-backups/_pre-preview-20260428-202206/`. * Tomcat is running in tmux session `mzh-library-tomcat`. * Verified `http://localhost:8080/library-management/login` returns `HTTP 200` with `Content-Type: text/html;charset=UTF-8`. * Verified demo login redirects to `/library-management/dashboard`, and the authenticated dashboard returns `HTTP 200`.