2015-02-10 19 views
10

Tôi muốn tạo một dự án plugin Gradle độc ​​lập như được mô tả trong Gradle documentation. Tôi muốn sử dụng IntelliJ khi hoàn thành mã cho GroovyGradle. Vì không có trình thủ thuật chuyên biệt nào để tạo một dự án plugin Gradle, tôi phải thực hiện nó theo cách thủ công.
Tôi đã quản lý để thêm Groovy SDK (binary) trong IDE qua: Tệp/Cài đặt khác/Cấu trúc dự án mặc định như được hiển thị trong ảnh chụp màn hình.Làm thế nào để thiết lập một dự án plugin Gradle trong IntelliJ?

IntelliJ/Project Structure

Để bắt đầu tôi đã tạo một dự án mới Gradle mà cũng chứa các wrapper Gradle. Sau đó tôi tạo một kịch bản Groovy có tên MyExamplePlugin.groovy theo cấu trúc dự án của sdk-manager-plugin; xin lưu ý tôi nếu dự án này không tuân theo thiết lập mong muốn.

. 
├── MyExamplePlugin.iml 
├── build.gradle 
├── gradle 
│   └── wrapper 
│    ├── gradle-wrapper.jar 
│    └── gradle-wrapper.properties 
├── gradlew 
├── gradlew.bat 
├── plugin 
│   └── src 
│    └── main 
│     ├── groovy 
│     │   └── com 
│     │    └── example 
│     │     └── MyExamplePlugin.groovy 
│     └── resources 
│      └── META-INF 
│       └── gradle-plugins 
│        └── myexample.properties 
└── settings.gradle 

Sau đó, tôi bắt đầu thực hiện các lớp:

import org.gradle.api.Plugin 
import org.gradle.api.Project 

class MyExamplePlugin implements Plugin<Project> { 
    // ... 
} 

Vấn đề là org.gradle.api.* không thể được tìm thấy.

Trả lời

18

Đến một mới, thư mục trống và gõ:

gradle init --type groovy-library 

Sau đó chỉnh sửa các tập tin build.gradle tạo ra và thêm:

compile gradleApi() 

Để sự phụ thuộc, và:

apply plugin: 'idea' 

Để các plugin ở gần đầu trang.

Sau đó chạy:

./gradlew idea 

Và mở dự án tạo ra trong IntelliJ

+1

dân sử dụng 'ý tưởng' cắm rất nhiều, nó thực sự làm bất cứ điều gì cho bạn? Tôi đã làm việc với Gradle và IntelliJ một thời gian - không bao giờ sử dụng nó. Chỉ tò mò thôi. Tôi chỉ cần chạy nhiệm vụ trình bao bọc sau đó mở tệp build.gradle bằng IntelliJ. – cjstehno

+1

Đó là một điều quen thuộc với tôi ... Tôi thấy các phiên bản cũ hơn của ý tưởng là một chút rác với một dự án gradle ... Các phiên bản sau có vẻ tốt hơn nhiều mặc dù :-) –

+0

@tim_yates Nice, cảm ơn bạn. Tôi cũng tìm thấy [tài liệu cho 'gradle init --type'] (https://gradle.org/docs/current/userguide/build_init_plugin.html). Sẽ rất thuận tiện nếu người dùng có thể chuyển ** các tên gói và plugin ** mong muốn để các tệp được tạo sẵn sàng bắt đầu. - BTW: Đây là [câu hỏi tiếp theo] (http://stackoverflow.com/questions/28439997/how-to-add-a-function-to-android-defaultconfig-with-a-gradle-plugin) nếu bạn có thể giúp. – JJD

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