2012-04-15 16 views
15

Tôi đang cố gắng để có được cxf-codegen-plugin để tạo nguồn từ tệp wsdl của tôi. Khi gọi hướng dẫn sử dụng wsdl2java, các lớp mong muốn được tạo nhưng khi sử dụng mvn generate-sources không có gì xảy ra và tôi nhận được thông báo "Không có mục tiêu cần thiết cho dự án". Gọi trực tiếp plugin không hữu ích.cxf-codegen-plugin không tạo nguồn

Các chiết xuất từ ​​poms của tôi sau:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.5.2</version> 
    <executions> 
     <execution> 
      <id>generate-sources</id> 
      <phase>generate-sources</phase> 
      <configuration> 
       <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>${basedir}/src/main/MyServiceInterface.wsdl</wsdl> 
        </wsdlOption> 
       </wsdlOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Trả lời

18

Điều đó có vẻ rất giống với cách I (thành công) cấu hình plugin mà tại một trong những dự án của tôi; Tôi hy vọng rằng để làm việc. (Tôi tin rằng bạn có thể bỏ qua số <sourceRoot>; cài đặt mặc định cho điều đó là cài đặt bạn đã nêu.)

Điều duy nhất tôi có thể nghĩ là nếu bạn đã đặt cấu hình plugin đó vào một Maven không hoạt động hồ sơ hoặc (nhiều khả năng) trong phần <pluginManagement> thay vì phần <plugins> thẳng; phần pluginManagement ghi đè các khía cạnh của cấu hình các plugin nhưng không thực sự cho phép chúng sử dụng. (Tuy nhiên, nó không ảnh hưởng đến việc sử dụng rõ ràng; tôi biết bạn không muốn làm điều đó.)

+0

pluginQuản lý nó. Cảm ơn bạn – Vespasian

+0

@Vespasian Rất vui được trợ giúp. –

2

Trong trường hợp của tôi ít nhất, tôi nghĩ nó cũng không tạo ra mã nguồn, nhưng thực tế là nó. Vấn đề là thư mục target/generated/cxf được Eclipse chỉ định như một thư mục nguồn, mà tôi đã không làm theo cách thủ công. Vì vậy, nguồn đã được hướng về phía trên cùng của dự án của tôi, trong cấu trúc gói, không phải trong cấu trúc thư mục bên dưới, đó là nơi tôi đang tìm kiếm và mong đợi nó được.

0

Trong trường hợp của tôi miễn là tôi có thư mục đích cũ (được xác định trong <sourceRoot>/path/to/target</sourceRoot>) không có gì được tạo. Chỉ sau khi xóa thư mục đích bằng tay plugin thực sự bắt đầu để tạo ra các nguồn.