2010-06-25 32 views
13

Tôi có dự án mà bây giờ tôi đang bắt đầu như dự án Maven, nhưng vì một lý do nào đó nó không hoạt động. Đây là pom.xml của tôi:Làm thế nào tôi có thể xây dựng WAR với Maven trong Eclipse?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ProgramName</groupId> 
    <artifactId>ProgramName</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>org.springframework.core</artifactId> 
      <version>3.0.2.RELEASE</version> 
     </dependency> 

     <!-- all other dependecies here --> 

    </dependencies> 
    <build> 
     <finalName>ProgramName</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.0.2</version> 
       <configuration> 
        <webResources> 
         <resource> 
          <targetPath>WEB-INF</targetPath> 
          <directory>src/main/webapp/WEB-INF</directory> 
          <filtering>true</filtering> 
          <includes> 
           <include>*.xml</include> 
          </includes> 
         </resource> 
        </webResources> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-release-plugin</artifactId> 
       <version>2.0</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

gì chính xác là không làm việc, bạn có một thông báo lỗi hay cái gì? –

+0

Tôi có thể xây dựng chiến tranh bằng cách nào? tôi có nghĩa là tôi cần tập tin chiến tranh – newbie

Trả lời

16

Trên thực tế, POM của bạn trông hơi lạ:

  • nó thiếu quyền packaging cho một dự án ứng dụng web.
  • cấu hình plugin chiến tranh maven trông không đúng, bạn chỉ không cần thêm nội dung bạn đã thêm.

Đây là những gì một pom tối thiểu trông giống như:

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-webapp</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <finalName>my-webapp</finalName> 
    </build> 
</project> 

Vì vậy, hoặc sửa đổi nó và cập nhật các cấu hình dự án (kích chuột phải vào về dự án của bạn sau đó Maven> Cập nhật Cấu hình dự án).

Hoặc chỉ bắt đầu lại và tạo dự án của bạn bằng cách sử dụng maven-archetype-webapp. Bạn có thể thực hiện điều này từ Eclipse: Mới> Dự án ...> Dự án Maven, sau đó chọn maven-archetype-webapp trong bão tuyết và làm theo các bước.

Hoặc từ dòng lệnh:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp 
+0

tên phần tử finalName là không bắt buộc, nó là sự ngăn cản là - . Salandur

+0

Thanx, tôi đã xóa mọi thứ khỏi bản dựng và bây giờ có vẻ như nó hoạt động. – newbie

+0

@newbie: Bạn được chào đón. Lưu ý rằng bạn sẽ cần cài đặt trình biên dịch maven cho Java 6. –

0

Tôi đề nghị sử dụng m2eclipse. Đó là thao tác một cú nhấp chuột bằng cách sử dụng plugin Eclipse.

+0

nó đã được cài đặt – newbie

+0

m2eclipse không tích hợp maven với WTP. Đối với việc tích hợp, bạn cần sử dụng http://www.eclipse.org/m2e-wtp/ – mariolpantunes

4

ví dụ, tôi thấy

<packaging>war</packaging> 

mất tích trong pom của bạn, bạn nên có một cái nhìn tại như thế nào maven-war-plugin được sử dụng.

Các vấn đề liên quan