Quản lý phụ thuộc với nho

0
515

1.1. thêm một phụ thuộc
Nho là một người quản lý phụ thuộc JAR, nhúng vào Groovy. Nho cho phép bạn nhanh chóng thêm maven repository phụ thuộc vào classpath của bạn, làm cho kịch bản thậm chí còn dễ dàng hơn. Sử dụng đơn giản nhất là đơn giản như việc thêm chú thích vào kịch bản của bạn:
@Grab (nhóm =’org.springframework ‘, mô-đun =’ mùa xuân-orm’, phiên bản =’3.2.5.RELEASE ‘) importJdbcTemplate
@Grab cũng hỗ trợ một ký hiệu viết tắt:
@Grab(‘org.springframework:spring-orm:3.2.5.RELEASE’) importJdbcTemplate
Lưu ý rằng chúng tôi đang sử dụng một nhập chú thích ở đây, đó là cách được khuyến nghị. Bạn cũng có thể tìm phụ thuộc vào và nó sẽ cung cấp cho bạn dưới hình thức các mục @Grab chú thích.
1.2. xác định kho phần mềm bổ sung
Không phải tất cả phụ thuộc đang ở maven miền trung. Bạn có thể thêm những cái mới như thế này:
@GrabResolver (tên = ‘restlet’, gốc =”) @Grab (nhóm =’org.restlet ‘, module=’org.restlet’, phiên bản =’1.1.6 ‘)
1.3. maven máy phân loại
Một số phụ thuộc maven cần máy phân loại để có thể giải quyết. Bạn có thể sửa lỗi đó như thế này:
@Grab (nhóm =’-lib’, mô-đun =’json-lib’, phiên bản =’2.2.3 ‘, loại = ‘jdk15’)
1.4. trừ Transitive phụ thuộc
Đôi khi, bạn sẽ muốn loại trừ transitive phụ thuộc như bạn có thể đã sử dụng một phiên bản hơi khác nhau nhưng tương thích của một số artifact. Bạn có thể làm điều này như sau:
@Grab(‘net.sourceforge.htmlunit:htmlunit:2.8’) @GrabExclude(‘xml-apis:xml-apis’)
1.5. JDBC trình điều khiển
Do cách JDBC trình điều khiển được nạp, bạn sẽ cần phải cấu hình nho để đính kèm JDBC lái phụ thuộc vào hệ thống class loader. Ví dụ:
@GrabConfig(systemClassLoader=true) @Grab (nhóm = ‘mysql’, mô-đun =’mysql-đầu nối-java’, phiên bản =’5.1.6 ‘)
1.6. sử dụng nho từ vỏ Groovy
Groovysh sử dụng phiên bản gọi phương pháp:
(group:’org.springframework’, mô-đun: ‘mùa xuân’, phiên bản: ‘2.5.6’)
1.7. cài đặt proxy
Nếu bạn đang đứng sau một bức tường lửa được và/hoặc cần phải sử dụng Groovy/nho thông qua một máy chủ proxy, bạn có thể chỉ định các cài đặt trên lệnh như thông qua các thuộc tính hệ thống http.proxyHost và http.proxyPort:
Groovy – Dhttp.proxyHost=yourproxy-Dhttp.proxyPort=8080 yourscript.groovy
Hoặc bạn có thể làm cho hệ thống này rộng bằng cách thêm các thuộc tính của biến môi trường JAVA_OPTS:
JAVA_OPTS = – Dhttp.proxyHost=yourproxy-Dhttp.proxyPort=8080
1.8. khai thác gỗ
Nếu bạn muốn xem những gì nho làm thiết lập hệ thống bất động sản groovy.grape.report.downloads True (ví dụ: Thêm từ – Dgroovy.grape.report.downloads=true đến invocation hoặc JAVA_OPTS) và nho sẽ in infos sau đây để System.error:
Bắt đầu giải quyết một phụ thuộc
Bắt đầu tải xuống một artifact
Thử tải một artifact
Tải về kích thước và thời gian để tải về cổ vật
Để đăng nhập với verbosity thậm chí nhiều hơn, tăng mức độ đăng nhập Ivy (mặc định là -1). Ví dụ: – Divy.message.logger.level=4.
2. chi tiết
Nho (The Groovy thích nghi bao bì cơ hoặc Groovy nâng cao công cụ đóng gói) là cơ sở hạ tầng cho phép grab() cuộc gọi trong Groovy, một tập các lớp học tận dụng Ivy cho phép cho một kho lưu trữ thúc đẩy hệ thống mô-đun cho Groovy. Điều này cho phép một nhà phát triển để viết một kịch bản với một yêu cầu về cơ bản bất kỳ thư viện và tàu chỉ là các kịch bản. Nho sẽ, lúc chạy, tải về như là cần thiết vàliên kết thư viện được đặt tên và tất cả phụ thuộc hình thành một tương lai đóng cửa khi kịch bản chạy từ kho phần mềm hiện có như JCenter, Ibiblio và
Nho sau công ước Ivy để xác định phiên bản mô-đun, với cách đặt tên thay đổi.
Nhóm – mô-đun mà nhóm các mô-đun đến từ. Dịch trực tiếp cho một groupId Maven hoặc một tổ chức Ivy. Bất kỳ nhóm kết hợp /groovyx\… ^ / dành riêng và có thể có ý nghĩa đặc biệt cho các mô-đun xác nhận groovy.
Mô-đun – tên của các mô-đun để tải. Dịch trực tiếp cho một artifactId Maven hoặc một artifact Ivy.
Phiên bản – phiên bản mô-đun để sử dụng. Hoặc là một phiên bản chữ ‘ 1.1-RC3’ hoặc một Ivy Range ‘ 2.2.1,)’ nghĩa là 2.2.1 hay bất kỳ phiên bản lớn hơn).
loại – loại tùy chọn để sử dụng (ví dụ, jdk15)
Các mô-đun tải về sẽ được lưu trữ theo cơ chế tiêu chuẩn của Ivy với một bộ nhớ cache gốc của ~/.groovy/grape
3. cách nho sử dụng
3.1. chú thích
Một hoặc nhiều chú thích có thể được thêm vào bất cứ nơi nào chú thích được chấp nhận để cho trình biên dịch mã này dựa trên các thư viện cụ thể. Điều này sẽ có hiệu lực của việc thêm các thư viện để classloader trình biên dịch groovy. Chú thích này phát hiện và đánh giá trước khi bất kỳ giải pháp khác của các lớp học trong kịch bản, do đó, các lớp học được chuyển nhập có thể được giải quyết đúng bởi một chú thích @Grab.
nhập com.jidesoft.swing.JideSplitButton @Grab (nhóm =’com.jidesoft ‘, mô-đun =’jide-oss’, phiên bản =’2.2.1, 2.3.0)’) công cộng lớp TestClassAnnotation khu vực tĩnh String () testMethod trở về cuộc gọi phù hợp lấy (…) sẽ được thêm vào initializer tĩnh của lớp học của các lớp học có chứa (hay kịch bản lớp trong trường hợp của một yếu tố kịch bản chú thích).
3.2. nhiều chú thích nho
Để sử dụng một chú thích nho nhiều lần trên các nút tương tự bạn phải sử dụng chú thích @Grapes, ví dụ như:
@Grapes (@Grab (nhóm =’commons nguyên thủy, mô-đun =’commons nguyên thủy, phiên bản =’1.0 ‘), @Grab (nhóm =’.cowan.tagsoup ‘, mô-đun = ‘tagsoup’, phiên bản =’0.9.7 ‘)) lớp ví dụ / /…
Nếu không bạn sẽ gặp phải các lỗi sau:
Không thể chỉ định chú thích trùng lặp trên cùng một thành viên
3.3. phương pháp gọi
Thông thường một cuộc gọi để lấy sẽ xảy ra sớm trong kịch bản hoặc trong khởi tạo của lớp. Điều này là để đảm bảo rằng các thư viện được tạo sẵn cho ClassLoader trước khi mã groovy dựa vào mã. Một vài cuộc gọi điển hình có thể xuất hiện như sau:
nhập khẩu groovy.grape.Grape / / ngẫu nhiên thư viện maven (group:’com.jidesoft’, mô-đun: jide’ một cửa’, phiên bản:’2.2.0,)’) (Nhóm:”, mô-đun: ‘ivy’, phiên bản:’2.0.0-beta1′, conf: ‘mặc định’, ‘tùy chọn’, Nhóm:”, mô-đun: ‘con kiến’, phiên bản: ‘1.7.0’)
Nhiều cuộc gọi để lấy trong bối cảnh cùng với các tham số tương tự nên idempotent. Tuy nhiên, nếu cùng một mã được gọi là với một bối cảnh khác nhau ClassLoader sau đó giải quyết có thểđược chạy lại.
Nếu bản đồ args được thông qua vào cuộc gọi grab có một noExceptions thuộc tính đánh giá đúng sự thật, không có ngoại lệ sẽ được ném.
Grab đòi hỏi một RootLoader hoặc GroovyClassLoader được chỉ định hoặc trong chuỗi ClassLoader của lớp gọi điện thoại. Theo mặc định không có như vậy một ClassLoader có sẵn sẽ dẫn đến giải pháp mô-đun và ngoại lệ được ném
ClassLoader thông qua vào thông qua classLoader: đối số và classloaders cha mẹ.
ClassLoader của đối tượng thông qua tại như là referenceObject: đối số, và đó là cha mẹ classloaders.
ClassLoader lớp phát hành các cuộc gọi để lấy
3.3.1. grab(HashMap) tham số
Nhóm:–mô-đun mà nhóm các mô-đun đến từ. Dịch trực tiếp đến Maven groupId. Bất kỳ nhóm kết hợp /groovy(\.. xx\..) / được dành riêng và có thể có ý nghĩa đặc biệt cho các mô-đun xác nhận groovy.
Mô-đun:–tên của các mô-đun để tải. Dịch trực tiếp với một artifactId Maven.
Phiên bản: – và có thể – phiên bản của các mô-đun để sử dụng. Hoặc là một phiên bản chữ ‘ 1.1-RC3’ hoặc một Ivy Range ‘ 2.2.1,)’ nghĩa là 2.2.1 hay bất kỳ phiên bản lớn hơn).
loại:–loại Maven giải quyết bằng cách.
conf: -, mặc định mặc định ‘-cấu hình hoặc phạm vi của các mô-đun để tải về. Conf mặc định là ‘ mặc định: những bản đồ để phạm vi thời gian chạy và master maven.
lực lượng: -, mặc định đúng – được sử dụng để chỉ ra rằng phiên bản này phải được sử dụng trong trường hợp xung đột, independently of
quản lý xung đột
thay đổi: -, mặc định giả – cho dù các artifact có thể thay đổi mà không có nó là phiên bản chỉ định thay đổi.
Ngoại động từ: -, mặc định đúng – cho dù để giải quyết quan hệ phụ thuộc khác mô-đun này có hay không.
Có hai biến thể chính của grab, một với một bản đồ duy nhất và một với một đối số bản đồ và bản đồ nhiều phụ thuộc. Một cuộc gọi để lấy bản đồ duy nhất là giống như gọi điện thoại lấy với cùng một bản đồ thông qua năm hai lần, vì vậy, lấy lý luận phụ thuộc có thể được trộn lẫn trong cùng một bản đồ và grab có thể được gọi là một phương pháp duy nhất với các tham số được đặt tên theo.
Có những từ đồng nghĩa cho các tham số này. Gửi nhiều hơn một là một ngoại lệ thời gian chạy.
Nhóm:, groupId:, tổ chức:, tổ chức:, org:
Mô-đun:, artifactId:, artifact:
Phiên bản:, phiên bản:, rev:
conf:, phạm vi:, cấu hình:
classLoader: – hay – The ClassLoader để thêm lọ để giải quyết
refObject: – Các gần cha mẹ ClassLoader cho các đối tượng lớp sẽ được đối xử như thể nó đã được thông qua tại như classLoader:
xác nhận: -, mặc định sai – nên poms hoặc ivycác tập tin xác nhận (đúng), hoặc chúng ta nên tin tưởng bộ nhớ cache (sai).
noExceptions: -, mặc định sai – nếu ClassLoader giải quyết hoặc kho truy vấn không thành công, nên chúng tôi ném một ngoại lệ (false) hoặc không âm thầm (đúng).
3.4. lệnh Line công cụ
Nho được thêm vào một dòng lệnh thực thi ‘nho’ cho phép cho việc kiểm tra và quản lý bộ nhớ cache nho địa phương.
nho cài đặt cài đặt này được chỉ định groovy module hoặc maven artifact. Nếu một phiên bản được chỉ định là phiên bản cụ thể sẽ được cài đặt, phiên bản mới nhất sẽ được sử dụng (nếu như ” chúng tôi thông qua trong).
danh sách nho
Danh sách địa phương cài đặt mô-đun (với tên đầy đủ maven của họ trong trường hợp của mô-đun groovy) và phiên bản.
nho giải quyết () +
Điều này trả về vị trí tập tin của lọ đại diện cho artifcats cho các mô được chỉ định và phụ thuộc động từ tương ứng. Bạn có thể tùy chọn vượt qua trong – ant,-dos, hoặc – vỏ để có được các phụ thuộc được bày tỏ trong một định dạng áp dụng cho một kịch bản ant, windows batch file hoặc unix shell script tương ứng. -ivy có thể được thông qua để xem phụ thuộc bày tỏ trong một ivy như định dạng.
3.5. cấu hình nâng cao
3.5.1. kho lưu trữ thư mục
Nếu bạn cần thay đổi việc sử dụng thư mục nho để tải về các thư viện bạn có thể chỉ định các tài sản hệ thống để thay đổi mặc định (nay là ~/.groovy/grape)
Groovy-= repo/nho yourscript.groovy
3.5.2. tuỳ chỉnh cài đặt Ivy
Bạn có thể tùy chỉnh các thiết lập ivy nho sử dụng bằng cách tạo ra một tập tin ~/.groovy/. Nếu không có tập tin như vậy tồn tại, đây là thiết lập mặc định được sử dụng bởi nho.
Để biết thêm chi tiết về làm thế nào để tùy chỉnh các cài đặt này, hãy tham khảo tài liệu Ivy
3.6. các ví dụ
Sử dụng TagSoup:
Các bộ sưu tập của Google bằng cách sử dụng:
Tung ra một máy chủ đê chắn sóng phục vụ Groovy mẫu:
@Grapes (@Grab (group=’org.eclipse.jetty.aggregate’, mô-đun =’ máy chủ đê chắn sóng ‘, phiên bản =’8.1.7.v20120910 ‘), @Grab (group=’org.eclipse.jetty.aggregate’, mô-đun =’jetty servlet’, phiên bản =’8.1.7.v20120910 ‘), @Grab (nhóm =’javax.servlet ‘, module=’javax.servlet-api’, phiên bản =’3.0.1 ‘)) nhập org.eclipse.jetty.server.Server import org.eclipse.jetty.servlet. nhập khẩu groovy.servlet. def runServer(duration) def server = mới Server(8080) def bối cảnh = mới ServletContextHandler (máy chủ, “/”, ServletContextHandler.SESSIONS); context.resourceBase = “.” context.addServlet (TemplateServlet, “.gsp”) server.start() giấc ngủ thời gian () runServer(10000)
Nho sẽ tải về cầu cảng và phụ thuộc của nó vào các khởi động đầu tiên của kịch bản này, và bộ nhớ cache của họ. Chúng tôi đang tạo ra một máy chủ mới của đê chắn sóng trên cổng 8080, sau đó phơi bày Groovy của TemplateServlet tại gốc của bối cảnh — Groovy đi kèm với cơ chế động cơ mạnh mẽ mẫu riêng của mình. Chúng tôi bắt đầu máy chủ và để cho nó chạy suốt một thời gian nhất định. Mỗi khi một người nào đó sẽ đạt: 8080 /, nó sẽ hiển thị các mẫu cho người dùng-những mẫu trang web nên được nằm trong thư mục giống như kịch bản máy chủ này.
Phiên bản 2.4.6

SHARE
Previous articleCác giá trị dinh dưỡng của nho xanh không hạt
Next articleGrapevine tánh dung cảm lạnh
Chuyên cung cấp các loại đặc sản Ninh Thuận như: say rim đường, muối ớt, Rượu nho Ninh Thuận nguyên chất, khô mực, nước mắm nhĩ, tỏi, rau câu chân vịt... Đặt hàng : 01.222.00.66.99