Tóm tắtEclipse + Maven + Dynamic Web Project -> Maven ghi đè Triển khai hội
Trong Eclipse, khi tôi "Maven-> Cập nhật Cấu hình dự án" "Maven Dependencies" sẽ bị xoá khỏi "Triển khai hội" của tôi dự án.
Chi tiết
tôi bắt đầu với một dự án được cấu hình sẵn Eclipse: File-> New-> Dynamic Web dự án-> JavaServer dự án Mặt v2.0. Để loại bỏ "ma thuật", tôi chuyển nó thành một dự án Maven: Configure-> Convert to Maven project.
pom.xml chứa sau:
<build>
<finalName>jsf-facelets-tutorial</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>WebContent/WEB-INF/web.xml</webXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.0.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.0.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Sau đó, để đảm bảo sự phụ thuộc Maven được sao chép vào "WEB-INF/lib /" trước khi triển khai, tôi đã thêm họ "Triển khai hội của dự án ": Thuộc tính dự án-> Triển khai hội. Để biết thêm chi tiết, hãy xem câu hỏi này: Eclipse + Maven + JavaServer Faces -> ClassNotFoundException: StartupServletContextListener.
Tôi biết có hai vấn đề liên quan.
vấn đề
(1) Khi tôi "dự án-> Maven-> Cập nhật Cấu hình dự án", "Maven Dependencies" sẽ bị gỡ khỏi tôi "Triển khai hội". Có cách nào để ngăn chặn điều này xảy ra, có thể thông qua một số plugin Maven?
(2) Khi tôi xây dựng .war từ bên trong Eclipse mọi thứ đều ổn, .war chạy tốt trong Tomcat. Nhưng khi tôi xây dựng nó từ dòng lệnh với Maven, mvn clean compile war:war
, các tệp .html từ "WebContent /" không được thêm vào .war. Một lần nữa, tôi cần khắc phục cài đặt/plugin nào của Maven?
FYI, đây là một ứng dụng rất cơ bản ... chỉ là trang đăng nhập và trang chào mừng.
Nếu có bất kỳ chi tiết bổ sung nào tôi nên cung cấp (web.xml, faces-config-xml, login.xhtml), hãy cho tôi biết và tôi sẽ thêm chúng.
Cảm ơn
--EDIT--
Eclipse phiên bản: 3.6.2
Eclipse M2E phiên bản: 1.0.1
Apache Maven phiên bản: 2.2.1
(1) Giải pháp
Cập nhật lên Eclipse Java EE 3.7.2 (Indigo). Bây giờ cũng sử dụng m2e-wtp Maven Integration for Eclipse WTP plugin
(2) Giải pháp
Tạo dự án Maven mới từ archetype, sau đó Eclipse-> Xuất nhập> Hiện có dự án Maven.Với phiên bản mới của Eclipse và M2E-WTP, phối cảnh Java EE trong Eclipse hoạt động tốt với các tiêu chuẩn Maven cấu trúc thư mục
Các pom.xml bây giờ là đơn giản quá:
<build>
<finalName>jsf-facelets-tutorial</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.0.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.0.5</version>
<scope>runtime</scope>
</dependency>
</dependencies>
Bạn đang sử dụng phiên bản Eclipse và M2Eclipse nào? – nwinkler
Phiên bản Eclipse: 3.6.2 Phiên bản Eclipse m2e: 1.0.1 Phiên bản Apache Maven: 2.2.1 –
Tôi đã cập nhật câu trả lời của mình để giải quyết câu hỏi của bạn liên quan đến thư mục WebContent. – nwinkler