Trong bài này mình giới thiệu với các bạn một plugin của Maven giúp chúng ta có thể chạy một ứng dụng web trong Jetty chỉ với vài cấu hình đơn giản. Đó chính là Maven Jetty Plugin.
Đầu tiên, chúng ta cần một ứng dụng web sử dụng Maven để làm ví dụ.
Mình dùng Spring Tool Suite để tạo project ví dụ cho bài viết này. Bạn nào chưa biết cách tạo một web project trong Spring Tool Suite thì có thể tham khảo bài viết này.
Cấu trúc project của chúng ta như sau:
Bây giờ mình sẽ thêm Maven Jetty Plugin vào project của chúng ta. Hiện tại Jetty có 3 phiên bản:
- Một phiên bản chạy với Java 8 hỗ trợ JavaEE 8, Servlet 3.1
- Một phiên bản chạy với Java 11 hỗ trợ JakartaEE 8, Servlet 4.0
- Và một phiên bản chạy với Java 11 hỗ trợ JakartaEE 9, Servlet 4.1
Mình đang sử dụng Java 8 cho ví dụ này nên mình sẽ sử dụng Jetty chạy với version Java này các bạn nhé!
1 2 3 4 5 |
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.40.v20210413</version> </plugin> |
OK, giờ chúng ta đã có thể chạy rồi.
Các bạn right-click chuột vào project hoặc tập tin pom.xml cũng được, sau đó chọn Run As, rồi chọn Maven build…
Cửa sổ Run Configurations sẽ xuất hiện, các bạn nhập clean jetty:run vào ô Goals như sau:
Sau đó nhấn Run, lúc này Maven sẽ build project của chúng ta và chạy nó trên Jetty server ở port mặc định là 8080, root context path sẽ là “/”, có nghĩa bạn chỉ cần chạy http://localhost:8080 là có thể thấy web của chúng ta rồi.
Kết quả:
Để thay đổi root context path của web chúng ta, các bạn có thể thêm cấu hình cho Maven Jetty Plugin trong tập tin pom.xml như sau:
1 2 3 4 5 6 7 8 9 10 |
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.40.v20210413</version> <configuration> <webApp> <contextPath>/springmvc</contextPath> </webApp> </configuration> </plugin> |
Rồi chạy lại, kết quả sẽ như sau:
Nếu các bạn muốn thay đổi port chạy thì cũng thể thêm cấu hình cho Maven Jetty Plugin như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.40.v20210413</version> <configuration> <webApp> <contextPath>/springmvc</contextPath> </webApp> <httpConnector> <port>8585</port> </httpConnector> </configuration> </plugin> |
Kết quả
Thái Minh Thông
Em đang bị một lỗi như thế này dù có thêm plugin nhưng nó vẫn báo:
No plugin found for prefix ‘petty’ in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\Windows 10\.m2\repository), central (https://repo.maven.apache.org/maven2)]
Khanh Nguyen
Có lẽ em đang nhập sai “jetty” mà em nhập là “petty”?
Thái Minh Thông
một sai lầm tai hại lúc Run Maven build, em cảm ơn anh nhiều
Thái Minh Thông
Đã fix lại, em cảm ơn anh nhiều
pumpkin
Mn cho mình hỏi với ạ
Tập tin pom.xml có đoạn như thế này, bây giờ phải cấu hình như thế nào??? Và khi mình run lên thì bị lỗi 404
maven-eclipse-plugin
2.9
org.springframework.ide.eclipse.core.springnature
org.springframework.ide.eclipse.core.springbuilder
true
true
org.eclipse.jetty
jetty-maven-plugin
9.3.0.v20150612
1.6
1.6
-Xlint:all
true
true
org.codehaus.mojo
exec-maven-plugin
1.2.1
org.test.int1.Main
Câu hình như thế nào đây ạ
Khanh Nguyen
Bạn đã thử cấu hình như mình hướng dẫn chưa?
pumpkin
Em cấu hình theo hướng dẫn nhưng có lỗi ntn ạ 🙁
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project springmvc: Fatal error compiling: tools.jar not found: C:\Program Files\Java\jre1.8.0_121\..\lib\tools.jar -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Khanh Nguyen
Xem hướng dẫn này nha em https://huongdanjava.com/vi/sua-loi-could-not-find-artifact-com-suntoolsjar1-5-0.html
pumpkin
Em cảm ơn anh nhiều ạ 😀