Một làm rõ vào cuối ngày hai điểm quan trọng
Nơi để đặt plugin
Một plugin
thực sự nên được bổ sung trong hầu hết các trường hợp trong phần build
/plugins
, tuy nhiên có một sự khác biệt quan trọng giữa việc đặt trong phạm vi plugins
khi đặt nó trong phạm vi pluginManagement
/plugins
.
sự hiểu lầm này là thường nguyên nhân của một plugin không viện dẫn trong Maven hoặc xử lý sự cố khó khăn hơn:
- Plugins dưới
build
/plugins
là trực tiếp một phần của Maven mặc định xây dựng, nếu họ xác định một execution
hoặc nếu họ cấu hình một cái gì đó cho việc xây dựng mặc định (xem dưới đây)
Plugins dưới build
/pluginManagement
/plugins
không necessarely phần của Maven mặc định xây dựng, có nghĩa là, i s quản lý, đó là một gợi ý để maven: nó bạn xảy ra để sử dụng plugin này, sau đó xin vui lòng sử dụng phiên bản, cấu hình, các hành quyết tôi chỉ định ở đây, trong quản lý này.
Nhưng điều gì xảy ra khi sử dụng có nghĩa là gì? Có nghĩa là: nếu cùng một plugin là cũng có trong phần build
/plugins
, sau đó áp dụng quản lý này (và chỉ khi đó nó sẽ có hiệu lực); hoặc nếu plugin được Maven gọi mặc định, sau đó cũng áp dụng nó.
Nhưng plugin được gọi theo mặc định như thế nào? Đó là một phần của triết lý chính đằng sau maven: quy ước về cấu hình. Theo quy ước, khi bạn chỉ định một số packaging
nhất định (mặc định là jar
, nhưng có thể là war
chẳng hạn), bạn muốn một số plugin nhất định được gọi. Để tạo một jar
, by default hãy gọi số maven-jar-plugin
; để tạo một war
, by default gọi số maven-war-plugin
và cứ tiếp tục như vậy. Vì vậy, nếu bạn chỉ định cấu hình plugin trong số build
/pluginManagement
/plugin
cho plugin có liên kết mặc định với bản dựng Maven, thì nó cũng sẽ được sử dụng.
đặt hàng
Liên quan đến việc đặt hàng các bộ phận bên trong file pom.xml
, làm rõ thêm là cần thiết: đó là thực sự không thích hợp trong hầu hết các trường hợp, tuy nhiên thứ tự của plugin
yếu tố wihtin các build
/plugins
phần có thể là quan trọng. Kể từ Maven 3.0.3 (MNG-2258
), các thực thi plugin khác nhau được đính kèm vào cùng một giai đoạn Maven sẽ được gọi theo thứ tự khai báo trong tệp pom.xml
. Tức là, thứ tự quan trọng là trong trường hợp này, vì nó có thể ảnh hưởng đến hành vi của bản dựng.
Ngoài ra, thứ tự của các tuyên bố dependency
có thể ảnh hưởng đến tòa nhà của bạn theo hướng Dependency Mediation, tức là phụ thuộc khai báo đầu tiên sẽ thắng trong trường hợp xung đột với phụ thuộc chuyển tiếp. Vì vậy, một lần nữa, đặt hàng là quan trọng trong một số trường hợp nhất định.
Cuối cùng nhưng không kém, mặc dù đặt hàng là không quan trọng đối với các phần khác của tập tin pom.xml
, thói quen tốt là làm theo chính thức Maven recommendations và, như một phiên bản đơn giản, hãy làm theo thứ tự này kê khai:
<project>
<modelVersion/>
<parent/>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<properties/>
<dependencyManagement/>
<dependencies/>
<build/>
<reporting/>
<profiles/>
</project>
Các sortpom-maven-plugin
cũng có thể được sử dụng để tự động áp dụng đặt hàng tiêu chuẩn này, chỉ cần gọi sau đây trên các lo ngại pom.xml
file:
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:2.5.0:sort \
-Dsort.keepBlankLines -Dsort.predefinedSortOrder=recommended_2008_06
Để đọc thêm:
Nguồn
2016-06-15 11:32:17
Tăng bạn rất nhiều. –