2012-04-25 26 views
13

Với jOOQ, tôi có thể muốn kết hợp bằng cách sử dụng jOOQ code generator with Mavencustom generator strategy. Có vẻ như điều này có thể được thực hiện như vậy (bỏ các phần không liên quan):Làm cách nào để sử dụng chiến lược tùy chỉnh với trình tạo mã jOOQ và Maven?

<plugin> 
    <groupId>org.jooq</groupId> 
    <artifactId>jooq-codegen-maven</artifactId> 
    <version>2.2.2</version> 

    <!-- The plugin should hook into the generate goal --> 
    <executions> 
    <execution> 
     <goals> 
     <goal>generate</goal> 
     </goals> 
    </execution> 
    </executions> 

    <configuration> 
    <generator> 
     <name>org.jooq.util.DefaultGenerator</name> 
     <!-- But the custom strategy is not yet compiled --> 
     <strategy> 
     <name>com.example.MyStrategy</name> 
     </strategy> 
    </generator> 
    </configuration> 
</plugin> 

Cấu hình ở trên mô tả vấn đề. Trình tạo mã của jOOQ móc vào mục tiêu tạo ra vòng đời Maven, nó diễn ra trước mục tiêu biên dịch của vòng đời. Tuy nhiên, để tạo mã, nó cần lớp chiến lược tùy chỉnh được biên dịch trước hoặc tôi sẽ nhận được ClassNotFoundException. Làm thế nào điều này có thể được giải quyết với Maven? Tôi có thể biên dịch một lớp đơn lẻ trước khi thực hiện mục tiêu generate không?

Trả lời

7

Một giải pháp tốt hơn là chia dự án thành hai mô-đun. Một chứa chiến lược và phần còn lại.

Sử dụng mô-đun, bạn có thể biên dịch chiến lược trong một bước độc lập và sau đó sử dụng mô-đun trong plugin:

<plugin> 
    <groupId>org.jooq</groupId> 
    <artifactId>jooq-codegen-maven</artifactId> 
    <version>2.2.2</version> 

    ...your config goes here... 

    <dependencies> 
    list your strategy module here 
    </dependencies> 
</plugin> 
Các vấn đề liên quan