Cách tạo biểu đồ phụ thuộc giữa tất cả các mô-đun của dự án Maven (trừ các thư viện của bên thứ ba như JUnit, SLF4J, v.v.)? Tôi không thể tìm thấy cách để bao gồm tất cả các mô-đun vào một đồ thị bằng cách sử dụng m2eclipse. Cảm ơn.Cách tạo biểu đồ phụ thuộc giữa tất cả các mô-đun của dự án Maven?
Trả lời
Nếu phụ thuộc Graph tính năng của m2eclipse không bao gồm nhu cầu của bạn, có thể có một cái nhìn tại Maven Graph Plugin và đặc biệt là mục tiêu graph:reactor
của nó.
CẬP NHẬT: các tính năng phụ thuộc Graph là loại bỏ trong m2eclipse 1.0. Để biết thêm thông tin, hãy xem: Maven POM-Editor: Dependency Graph missing
Tôi thích đồ thị: lò phản ứng, nhưng tôi không thấy bất kỳ cách nào để loại trừ các phụ thuộc của bên thứ ba. – Raman
Mặc dù tôi thích câu trả lời, tôi không thấy cách nào để loại trừ phụ thuộc bên thứ 3 khỏi biểu đồ như @Raman nói. Chúng ta đang thiếu cái gì đó hay chỉ là không thể? – Brambo
Ngoài ra, nó là đồ thị quá xấu: lò phản ứng không có một chế độ đầu ra graphml, tương tự như 'phụ thuộc: cây -DoutputType = graphml'. Bằng cách đó, kết quả đầu ra có thể được thao tác trong một trình soạn thảo như yEd. – Raman
Bạn chưa mở pom qua Eclipse và nhìn vào các thư mục tab của tệp pom.xml có một mục nhập là "Dependency Graph"? Ah xin lỗi ... giám sát điều gì đó ... Bạn có thể tạo cây phụ thuộc thông qua phụ thuộc mvn: cây trên dòng lệnh, nhưng điều này không tạo ra chế độ xem đồ họa. Một giải pháp khác tốt hơn có thể là Maven Overview Plugin
Một tùy chọn khác là com.github.janssk1 maven dependency graph plugin. Plugin này xuất ra các phụ thuộc vào một tệp graphml có thể được mở và chỉnh sửa trong một trình soạn thảo như yEd.
Để tạo ra các tập tin graphml:
mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph
Plugin này hiện không cung cấp bất kỳ cơ chế để loại trừ phụ thuộc bên thứ 3, AFAICT, nhưng họ có thể bị xóa bằng tay từ biểu đồ sử dụng Yed hoặc thông qua một kiểu XSLT rằng sau xử lý các tệp graphml. Đây là một kiểu đơn giản mà sẽ xóa phụ thuộc bên thứ ba (bất kỳ phụ thuộc không bắt đầu với các gói được cung cấp bởi các tham số "nội bộ"):
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml"
version="2.0">
<xsl:output method="xml"/>
<xsl:param name="internal"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="gml:node[not(starts-with(@id, $internal))]"/>
<xsl:template match="gml:edge[not(starts-with(@source, $internal)) or not(starts-with(@target, $internal))]"/>
</xsl:stylesheet>
Và thực hiện nó thông qua một bộ xử lý XSLT 2.0 tương thích như Saxon:
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
Cảm ơn bạn đã cung cấp XSLT. Bạn có thể dễ dàng mở rộng để lọc nhiều tên gói, mã màu của bạn, vv, bất cứ điều gì. Rất hữu ích khi tái tạo biểu đồ của bạn trong chu kỳ dev. – sbk
Tôi đã cố gắng sử dụng nhưng tôi nhận được: Không thực hiện được mục tiêu com.github.janssk1: maven-dependencygraph-plugin: 1 .2: đồ thị (mặc định-cli) trên dự án cag-parent: Không thể ghi vào tệp :. ... – aName
@aName Tôi có cùng một vấn đề 'Không thực hiện được mục tiêu com.github.janssk1: maven-dependencygraph-plugin: 1.0: đồ thị (mặc định-cli) trên dự án email_templates: Không thể ghi vào tệp:/home/acme/acme/module/email_templates/target/email_templates-42.1.0-SNAPSHOT-deps.graphml (Không có tệp hoặc thư mục nào) ' –
Thanh toán dự án này quá: https://github.com/roclas/pomParser
Nó tạo ra một "đồ thị" khá mát mẻ mà có thể được điều hướng trong cả hai cách (tới lui). Ý tưởng rất đơn giản và bạn có thể tải xuống và thay đổi mã rất dễ dàng.
Cảm ơn rất nhiều. Đó là một công cụ thực sự tốt đẹp. –
Tôi nghĩ rằng đồ thị cũng sẽ là đồ họa nhưng nó có vẻ như kết quả "đồ thị" là kết cấu tinh khiết với các liên kết đến các phụ thuộc. – snap
Cài đặt Maven Graph Plugin: http://mvnplugins.fusesource.org/maven/1.10/maven-graph-plugin/index.html, định cấu hình theo cách này để ẩn phụ thuộc của bên thứ ba. Làm việc tốt.
<profile>
<id>graph</id>
<pluginRepositories>
<pluginRepository>
<id>mvnplugins.fusesource.org</id>
<url>http://mvnplugins.fusesource.org/repo/release</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.fusesource.mvnplugins</groupId>
<artifactId>maven-graph-plugin</artifactId>
<version>1.10</version>
<configuration>
<hideExternal>true</hideExternal>
</configuration>
</plugin>
</plugins>
</build>
</profile>
có tồn tại một cách chính xác những gì bạn cần, nó được gọi là Pom Explorer.
Bạn có thể tìm thấy những trang web ở đây: github.com/ltearno/pom-explorer
Nó là một công cụ để làm việc trên một đồ thị của dự án maven. Như một lời trêu ghẹo tôi có thể nói rằng trên máy tính của tôi, nó phân tích 4000 tệp pom.xml trong 4 giây.Sau đó, nhiều functionnalities được cung cấp ở trên đồ thị pom phân tích:
- phân tích phụ thuộc (người phụ thuộc vào GAV, mà gavs GAV này phụ thuộc vào, với transitivity), độ phân giải
- (pom explorer biết thuộc tính mà được xác định, nó quản lý phụ thuộc và nhập khẩu bom),
- thao tác (bạn có thể sử dụng nó để biến đổi biểu đồ pom, giả sử bạn muốn nhiều dự án sử dụng phiên bản phụ thuộc mới),
- build (pom explorer analysis your pom graph) và biết thứ tự nên được xây dựng, sau đó nó xây dựng mọi thứ! thậm chí nó có thể xem các thư mục dự án của bạn để thay đổi),
- xuất (ngày nay có CSV và GRAPHML xuất khẩu),
- trực quan hóa (trình khám phá pom có thể hiển thị cho bạn hình ảnh 3D có thể tùy chỉnh tương tác của biểu đồ dự án).
Hiện tại nó đang được phát triển tích cực, do đó bạn đừng ngại thử, báo cáo lỗi và yêu cầu các tính năng hữu ích! Tài liệu cũng chưa hoàn thành, vì vậy xin đừng ngần ngại hỏi!
Cảm ơn
cảm ơn bạn vì thông tin này, tôi sẽ thử nó –
Ưa thích nhưng không hoạt động. "LỚN LỚN RPC" –
Tôi cũng đã tạo công cụ cho việc này. Tôi đã dành cả ngày hack vào nó nên vẫn rất thử nghiệm =) Kiểm tra và đóng góp mã được hoan nghênh!
Tôi gọi nó là Maven Repository Dependency Visualizer. Nó không chỉ hiển thị phụ thuộc, nhưng tất cả các hiện vật có liên quan.
Với đầu vào này:
java -jar build/libs/maven-repository-dependency-visualizer-*-SNAPSHOT.jar \
-r http://repo1.maven.org/maven2 \
-fgs se.bjurr.violations \
-g se.bjurr.violations \
-a violation-comments-to-gitlab-gradle-plugin \
-v 1.9
- Một kho lưu trữ, như Nexus hoặc Artifactory.
- Một hoặc nhiều nhóm để bao gồm.
- Một nhóm, tạo phẩm và phiên bản.
Nó sẽ ra một biểu đồ hiển thị các mối quan hệ giữa các hiện vật đó:
- Các vật được phụ thuộc vào.
- Phụ thuộc vào hiện vật đã cho.
- Tùy thuộc vào bất kỳ tạo tác nào mà phần tạo tác phụ thuộc vào.
Nó có thể được sử dụng để:
- hiểu nhanh của phần mềm được phát triển bởi một tổ chức.
- Xác định cách thiết kế đường ống phân phối.
- Tìm phụ thuộc lạ giữa các hiện vật.
- Và nhiều hơn nữa =)
Đây là available on GitHub.
- 1. Đồ thị phụ thuộc Maven
- 2. Maven - bao gồm tất cả các môđun con của một pom như phụ thuộc trong một mô-đun
- 3. Thu thập phụ thuộc chuyển tiếp phụ thuộc của Maven vào đường dẫn lớp của dự án không phải Maven
- 4. Lấy cây phụ thuộc của dự án maven với sự thiếu phụ thuộc
- 5. maven lực xây dựng lại các dự án phụ thuộc (xây dựng phụ thuộc đầu tiên)
- 6. xuất tất cả các thuộc tính dự án maven được xác định thành tệp?
- 7. Phụ thuộc Maven vs quản lý phụ thuộc cho nhiều dự án
- 8. Tạo tất cả các phụ thuộc của dự án trong một tệp đơn bằng cờ gcc -MM
- 9. Bao gồm tất cả các phụ thuộc
- 10. Chạy "sạch" tất cả các tiểu dự án SBT phụ thuộc
- 11. Biểu đồ phụ thuộc cho các phần của Rails
- 12. Cách lấy qmake để tạo "phụ thuộc dự án" trong dự án Visual Studio .sln
- 13. Tạo dự án maven
- 14. Có cách nào để có được tất cả các phụ thuộc của dự án thông qua sbt plugin?
- 15. báo cáo maven về giấy phép dự án của bạn phụ thuộc vào
- 16. Thêm các dự án nhật thực tham chiếu vào các phụ thuộc maven
- 17. Maven POM-Editor: Biểu đồ phụ thuộc thiếu
- 18. Sự khác nhau giữa tất cả các dự án và tiểu dự án là gì
- 19. Với Maven, làm thế nào tôi có thể xây dựng một phân phối có jar của dự án của tôi và tất cả các lọ phụ thuộc?
- 20. Maven: Làm thế nào để tìm các đồ tạo tác mà phụ thuộc vào vật khác
- 21. CMake - phụ thuộc (tiêu đề) giữa các ứng dụng/thư viện trong cùng một dự án
- 22. Maven: Tổng hợp và phụ thuộc
- 23. Sự khác nhau giữa tham chiếu dự án và phụ thuộc dự án là gì?
- 24. Làm thế nào để thiết lập phụ thuộc Maven giữa các thư mục thử nghiệm trong hai dự án?
- 25. Cách tạo nhiều dự án theo thứ tự phụ thuộc chính xác với NDK của Android?
- 26. Làm thế nào để chia sẻ các thuộc tính chung giữa một số dự án maven?
- 27. Tạo cây mô-đun dự án maven?
- 28. Proxy tất cả kho lưu trữ phụ thuộc maven thông qua Nexus
- 29. Tìm hiểu phụ thuộc của tất cả các tệp DLL?
- 30. (Visual) Phân tích phụ thuộc dự án C++
Trong IntelliJ, bạn có thể có một cái nhìn cây về phụ thuộc bằng cách nhấp chuột phải vào tệp pom.xml trên cùng và chọn ** Phân tích ** -> ** Phân tích phụ thuộc mô-đun **. Thêm dưới dạng nhận xét vì nó hoạt động tốt mà không cần thư viện hoặc cấu hình cần thiết. –
@PatrickM ngoại trừ nó có [vấn đề mở] (https://github.com/janssk1/maven-graph-plugin/issues/3) để được hỗ trợ mô-đun. – OrangeDog