2011-11-16 26 views
17

Trong Grails, có một biến thể làm thế nào để bao gồm các plugin địa phương từ các nguồn. Theo tài liệu, người ta có thể nhập BuildConfig.groovy:Làm thế nào để chạy một plugin địa phương trong Grails 2.0?

// Useful to test plugins you are developing. 
grails.plugin.location.shiro = 
     "/home/dilbert/dev/plugins/grails-shiro" 

// Useful for modular applications where all plugins and 
// applications are in the same directory. 
grails.plugin.location.'grails-ui' = "../grails-grails-ui" 

Vấn đề là nó không hoạt động trong Grails 2.0.RC1. Tôi đã cố gắng làm grails clean, để cài đặt plugin với grails install-plugin và đặt nó vào BuildConfig.groovy. Vẫn không thể giải quyết.

+0

Bạn gặp phải lỗi gì? Tôi chỉ cố gắng 'BuildConfig' route, với 2.0RC1 và nó có vẻ làm việc tốt ... Bạn đang làm một hay khác không phải là bạn? Không phải 'grails install-plugin' VÀ đặt nó trong' BuildConfig.groovy' cùng một lúc? –

+1

Điều đó thật đơn giản. Với dòng 'grails.plugin.location. *', Bạn không nên cài đặt plugin nào cả. Chỉ cần gõ lint này trong 'BuildConfig.groovy' và làm' grails run-app'! –

+0

Tôi đã cố cài đặt plugin hoặc đặt nó vào trong BuildConfig DSL cùng một lúc :) nhờ @tim_yates –

Trả lời

20

này làm việc cho tôi

grails.plugin.location.shiro = "/home/dilbert/dev/plugins/grails-shiro" 

đâu shiro là tên của plugin (không phải là tên của thư mục đó là in). Đảm bảo đường dẫn đến plugin là đường dẫn tuyệt đối hoặc đường dẫn tương đối đến plugin từ ứng dụng.

Tôi nhận thấy rằng điều này đôi khi không hoạt động nếu plugin được liệt kê trong application.properties hoặc BuildConfig.groovy, vì vậy nếu có, hãy xóa nó, sau đó thực hiện grails clean và khởi động lại ứng dụng.

+0

Phương pháp này làm việc cho tôi bằng cách thêm vào buildConfig.groovy. +1 đến @andruso vì nhận xét của anh về dấu gạch ngang. Nếu plugin của bạn chứa dấu gạch ngang, hãy đặt tên plugin vào dấu ngoặc kép. Ví dụ: grails.plugin.location.'plugin-name-with-dashes '= "" –

0

Bạn có thể thêm tệp .zip cho plugin trong/lib của bạn và nó sẽ được cài đặt.

Ví dụ:

compile ":myPlugin:1.0" 

File:

/lib/myPlugin-1.0.zip 

Lưu ý: Bạn phải nén nội dung của thư mục plugin.

Nguồn: http://grails.1312388.n4.nabble.com/Insert-own-local-plugin-into-build-config-td4646704.html

+0

Điều này không hiệu quả vì bạn sẽ phải nén và thay thế tệp đó mỗi lần cập nhật xong. Hãy quên đi bước này và bạn sẽ theo dõi một số vấn đề thực sự khó hiểu. – Joseph

+1

Không hoạt động trong grails 2.4.0 – sikander

7

Bạn cũng có thể cài đặt plugin vào bộ nhớ cache maven cục bộ của mình.

Các tài liệu nói về vấn đề này:

3.7.10 Deploying to a Maven Repository

maven-install 

Các maven-cài đặt lệnh sẽ cài đặt các dự án Grails hoặc vật cắm vào bộ nhớ cache Maven địa phương của bạn:

grails maven-install

Điều này có lợi thế là cho phép bạn bao gồm các plugin trong ứng dụng cha của bạn bằng cách sử dụng thứ e phổ biến hơn cú pháp ":plugin-name:version"

Cho phép ứng dụng của bạn xác định nơi tốt nhất để truy xuất plugin khi đang trong quá trình sản xuất. Từ một repo maven nội bộ hoặc tương đương.

1

Surround tên plugin với dấu ngoặc kép trong trường hợp nó có chứa dấu gạch ngang:

grails.plugin.location.'plugin-name-with-dashes' = "<path>" 
3

Với Grails 3.x có một cách khác để làm điều này.Giả sử bạn đã là một ứng dụng Grails và plugin (mã nguồn) bên trong thư mục cùng một dự án:

/my-project 
---/my-app 
---/grails-shiro 

Để chạy plugin của địa phương của bạn, bạn phải tạo một tập tin trong thư mục settings.gradlemy-project xác định vị trí của ứng dụng và plugin của bạn :

include 'my-app', 'grails-shiro' 

Sau đó, thêm phụ thuộc vào build.gradle ứng dụng của bạn:

compile project(':grails-shiro') 

bạn đã thực hiện.

Nhìn vào số plugins documentation để biết thêm thông tin.

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