Tôi có một dự án maven đa mô-đun và tôi muốn làm cho tất cả các mô-đun con của mình sử dụng maven-compiler-plugin
được chỉ định trong thư mục gốc pom.xml
. Tôi nên đặt tờ khai maven-compiler-plugin
(trong thư mục gốc pom.xml
): trong mục <plugins>
hoặc trong mục <pluginManagement>
? Câu hỏi cũng liên quan đến maven-release-plugin
.Nơi cần được đặt khai báo maven-compiler-plugin: trong <plugins> hoặc <pluginManagement>?
Trả lời
Hai phần này (plugins
và pluginManagement
) có các mục đích hơi khác nhau.
Đầu tiên (plugins
) được sử dụng để chỉ định quy trình xây dựng dự án của bạn (và tất cả các dự án con kế thừa từ dự án mẹ). Nếu bạn bao gồm một số plugin vào phần này, nó sẽ được thực hiện trong mỗi dự án con bất kể loại của nó.
Mục thứ hai (pluginManagement
) được sử dụng để chỉ định cài đặt plugin phổ biến cho tất cả các dự án được kế thừa từ dự án mẹ (ví dụ: phiên bản plugin và cấu hình).
Phát biểu của 2 plugin bạn đã đề cập. maven-compiler-plugin
là một plugin mặc định sẽ được thực thi cho dù bạn có chỉ định hay không. Nó có ý nghĩa để bao gồm nó trong pluginManagement
và xác định cấu hình của nó ở đó. Tuy nhiên, maven-release-plugin
không bị ràng buộc với bất kỳ pha vòng đời nào. Vì vậy, nếu bạn muốn nó được thực hiện trong tất cả các dự án con của bạn, bạn sẽ phải thêm nó vào phần plugins
.
Tùy thuộc vào những gì bạn đang theo dõi. Nếu bạn đưa chúng vào phần plugins
, chúng sẽ thực thi cho tất cả POM ... bao gồm cả số gốc. Nếu bạn chỉ muốn các POM con thực thi các mục tiêu của plugin, thì bạn nên đặt chúng dưới pluginManagement
. Tuy nhiên, trong trường hợp đó, bạn sẽ phải kích hoạt chúng trong mỗi POM con.
Điều đó nói rằng, điều dễ nhất cần làm là thử theo số plugins
trước tiên. Nếu không có xây dựng thất bại, sau đó bạn tốt để đi. Nếu không, bạn sẽ cần phải di chuyển một số hoặc tất cả đến pluginManagement
.
Vì vậy, bên trong phần '
- 1. Nơi đặt chức năng JavaScript: <head>? <body>? hoặc sau</html>?
- 2. cout << "привет"; hoặc wcout << L "привет";
- 3. Tại sao ai đó sử dụng toán tử << trong khai báo enum?
- 4. bị lỗi Biến <tên biến> hoặc không khai báo hoặc chưa bao giờ được gán
- 5. Thay thế không được chấp nhận <: <Chứng thực loại khai man trong Scala 2.10
- 6. Trong khai báo "std :: vector <X> f();", là "std :: vector <X>" một instantiation?
- 7. Khai báo sự phụ thuộc trong phần <dependencyManagement> ngay cả khi phụ thuộc không được sử dụng ở mọi nơi?
- 8. Java: Khai báo một Bản đồ với hai loại generics liên quan Các loại (<T> Bản đồ <Lớp <? Mở rộng ClassA <T>>, Lớp <? Mở rộng ClassB <T> >>)
- 9. Có phải <input> được thiết lập tốt mà không cần <form>?
- 10. Sử dụng "<<" hoặc "+" để đặt các chuỗi lại với nhau khi sử dụng "cout"
- 11. Cách gọi hàm JavaScript, được khai báo trong <head>, trong phần thân khi tôi muốn gọi nó là
- 12. unique_ptr <int[]> hoặc vector <int>?
- 13. GIT tập tin bị hỏng (<<<<<<<< HEAD)
- 14. Cần khai báo chuyển tiếp trong Ruby
- 15. Cần trợ giúp cài đặt MooseX :: Khai báo
- 16. Cách sử dụng <h: selectBooleanCheckbox> trong <h:dataTable> hoặc <ui:repeat> để chọn nhiều mục?
- 17. Khi sử dụng ObservableCollection <T>, tôi vẫn cần triển khai INotifyPropertyChanged trên loại T?
- 18. Khởi tạo thuộc tính/khai báo trong lớp Python: nơi đặt chúng?
- 19. "Toán tử <<" được gọi là gì?
- 20. LLVM isa <> được triển khai như thế nào?
- 21. jQuery addClass chỉ <td> nơi cha mẹ <tr> có lớp cụ thể
- 22. Trong C#, <T> Sau khi khai báo phương thức là gì?
- 23. Tại sao HashSet <T> không triển khai IReadOnlyCollection <T>?
- 24. Cài đặt <Window.DataContext> trong XAML
- 25. lỗi C2248: 'std :: basic_ios <_Elem, _Traits> :: basic_ios': không thể truy cập thành viên riêng được khai báo trong lớp 'std :: basic_ios <_Elem, _Traits>'
- 26. Scala "<-" để hiểu được
- 27. Sử dụng lớp << tự, khi nào cần sử dụng các lớp học hoặc mô-đun?
- 28. Đó là tốt hơn: <script type = "text/javascript"> ...</script> hoặc <script> ...</script>
- 29. Làm thế nào để thực hiện Scala chính xác của <: <, <% <, =: = làm việc trong trình biên dịch?
- 30. sử dụng <%= %> hoặc <%# %> với runat = server trong ASP.NET
cảm ơn bạn đã trả lời rõ ràng. Bạn có thể giải thích cho tôi, tại sao 'maven-compiler-plugin' không được thực thi theo mặc định trái ngược với' maven-release-plugin'? Hoặc nơi tôi có thể xem danh sách các plugin được thực hiện theo mặc định trong các giai đoạn vòng đời? – MyTitle
Bạn được chào đón. Danh sách các plugin mặc định và mục tiêu của chúng phụ thuộc vào bao bì dự án. Bạn có thể đọc thêm về nó [ở đây] (http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Built-in_Lifecycle_Bindings) (trên thực tế, toàn bộ trang đáng đọc). –
Còn về 'maven-surfire-plugin' thì sao? Sau khi giải thích của bạn, tôi nghĩ rằng nó nên được đặt bên trong pluginManagement, bởi vì nó bị ràng buộc để "thử nghiệm" giai đoạn của maven .. đó là sự thật? – MyTitle