Có ai có ý tưởng gì nếu bạn có thể tìm thấy các JAR nguồn trên kho lưu trữ của Maven không?
Có ai có ý tưởng gì nếu bạn có thể tìm thấy các JAR nguồn trên kho lưu trữ của Maven không?
Câu trả lời:
Maven Micro-Tip: Nhận nguồn và Javadocs
Khi bạn đang sử dụng Maven trong IDE, bạn thường thấy cần IDE của mình để giải quyết mã nguồn và Javadocs cho các phụ thuộc thư viện của bạn. Có một cách dễ dàng để thực hiện mục tiêu đó.
mvn dependency:sources mvn dependency:resolve -Dclassifier=javadoc
Lệnh đầu tiên sẽ cố tải xuống mã nguồn cho từng phụ thuộc trong tệp pom của bạn.
Lệnh thứ hai sẽ cố tải xuống Javadocs.
Maven là niềm vui của những người đóng gói thư viện ở đây. Vì vậy, một số trong số họ sẽ không được đóng gói mã nguồn và nhiều người trong số họ sẽ không có Javadocs.
Trong trường hợp bạn có nhiều phụ thuộc, bạn cũng nên sử dụng các thể loại / loại trừ để lấy các tạo phẩm cụ thể, ví dụ, lệnh sau đây sẽ chỉ tải xuống các nguồn cho sự phụ thuộc với một artifactId cụ thể:
mvn dependency:sources -DincludeArtifactIds=guava
Nguồn: http://tedwise.com/2010/01/27/maven-micro-tip-get-source-and-javadocs/
Tài liệu: https://maven.apache.org/plugins/maven-dependency-plugin/source-mojo.html
mvn dependency:resolve -Dclassifier=javadoc
IntelliJ IDEA tự động thông báo javadocs, rất hay.
Định cấu hình và chạy plugin maven-eclipse, (ví dụ từ dòng lệnh mvn eclipse:eclipse
)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
mvn eclipse:eclipse
nếu bạn thêm nó vào tệp POM?
M2_REPO
dưới dạng xxxx-yy-nguồn.jar, tại cùng vị trí với jar thông thường. Nó sẽ được đính kèm dưới dạng mã nguồn cho tệp xxxx-yy trong các thư viện
Nếu một dự án tạo ra một lọ các nguồn dự án và triển khai nó vào một kho lưu trữ, thì bạn sẽ tìm thấy nó :)
Chỉ cần FYI, các tạo phẩm nguồn thường được tạo bởi maven-source-plugin . Plugin này có thể gói các nguồn chính hoặc kiểm tra của dự án vào một kho lưu trữ jar và, như được giải thích trong Cấu hình Plugin Nguồn :
(...) Tệp jar được tạo sẽ được đặt tên theo giá trị của
finalName
"nguồn" cộng nếu đó là nguồn chính. Mặt khác, nó sẽ đượcfinalName
cộng với "-test-nguồn" nếu đó là nguồn thử nghiệm.
Văn bản bổ sung đã được đưa ra để mô tả một tạo phẩm ("nguồn" hoặc "-test-nguồn" ở đây) được gọi là phân loại.
Để khai báo một phụ thuộc vào một tạo phẩm sử dụng trình phân loại, chỉ cần thêm <classifier>
phần tử. Ví dụ:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.7.ga</version>
<classifier>sources</classifier>
</dependency>
Lưu ý rằng bạn thường không làm điều này, hầu hết các IDE cung cấp hỗ trợ để tải xuống các nguồn (và / hoặc JavaDoc) từ tạo phẩm chính mà không tuyên bố rõ ràng sự phụ thuộc vào chúng.
Cuối cùng, cũng lưu ý rằng một số công cụ tìm kiếm kho lưu trữ cho phép tìm kiếm các tạo phẩm bằng cách sử dụng trình phân loại (ít nhất là Nexus thực hiện với tìm kiếm nâng cao). Xem tìm kiếm này cho ví dụ.
Để tải xuống một số nguồn hoặc javadoc cụ thể, chúng tôi cần bao gồm GroupIds - Giá trị được phân tách bằng dấu phẩy như được hiển thị bên dưới
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=sources
Lưu ý rằng trình phân loại không được phân tách bằng dấu phẩy, để tải xuống javadoc, chúng ta cần chạy lệnh trên một lần nữa với trình phân loại là javadoc
mvn dependency:sources -DincludeGroupIds=com.jcraft,org.testng -Dclassifier=javadoc
Các ý tưởng maven Plugin cho IntelliJ Idea phép bạn xác định có hay không nguồn và java doc nên được giải quyết và tải về
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true
Để tải xuống bất kỳ sử dụng tạo tác
mvn dependency:get -Dartifact=groupId:artifactId:version:packaging:classifier
Đối với các nguồn Groovy, điều này sẽ là
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:sources
Đối với javadoc Groovy bạn sẽ sử dụng
mvn dependency:get -Dartifact=org.codehaus.groovy:groovy-all:2.4.6:jar:javadoc
Điều này đặt vật phẩm đã cho vào kho lưu trữ Maven cục bộ của bạn, tức là thường $HOME/.m2/repository
.
dependency:sources
chỉ cần tải xuống các nguồn phụ thuộc của dự án, không phải các nguồn bổ trợ cũng như các nguồn phụ thuộc được xác định bên trong các plugin.
bạn có thể tìm thấy thông tin trong câu hỏi liên quan này: Nhận các tệp jar nguồn được đính kèm với Eclipse cho các phụ thuộc do Maven quản lý
nếu bạn sử dụng plugin maven nhật thực sau đó sử dụng 'mvn eclipse: eclipse -DdoadSource = true'
nếu bạn đang sử dụng nhật thực, bạn cũng có thể mở Tùy chọn> Maven và chọn Tải xuống Nguồn tạo tác, điều này sẽ cho phép pom.xml nguyên vẹn và giữ các nguồn hoặc tài liệu java của bạn (nếu được chọn) chỉ để phát triển ngay tại vị trí máy của bạn ~ / .m2
Trong Nhật thực
pom.xml
Run As
-> Maven generate-sources
Điều kiện tiên quyết:
Maven nên được cấu hình với Eclipse.
Trong NetBeans 8 với dự án do Maven điều khiển, chỉ cần nhấp vào ngữ cảnh vào mục danh sách tệp jar của phụ thuộc mà bạn quan tâm. Chọn Download Sources
. Đợi một lát và NetBeans sẽ tự động tải xuống và cài đặt mã nguồn, nếu có.
Tương tự như vậy, bạn có thể chọn Download Javadoc
để cài đặt tài liệu cục bộ. Sau đó, bạn có thể nhấp vào ngữ cảnh một số mã trong trình soạn thảo và chọn xem JavaDoc.
Dựa trên việc xem bảng điều khiển Maven trong Eclipse (Kepler), các nguồn sẽ được tự động tải xuống cho một phụ thuộc Maven nếu bạn cố mở một lớp từ phụ thuộc Maven đã nói trong trình soạn thảo mà bạn chưa tải xuống các nguồn. Điều này rất hữu ích khi bạn không muốn lấy nguồn cho tất cả các phụ thuộc của mình, nhưng bạn không biết cái nào bạn muốn trước thời hạn (và bạn đang sử dụng Eclipse).
Tôi đã kết thúc bằng cách sử dụng phương pháp của @ GabrielRamierez , nhưng sẽ sử dụng phương pháp tiếp cận của @ PascalThivent trong tương lai.
Nếu bạn biết groupId và aritifactId , bạn có thể tạo url tải xuống như thế này.
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
http://central.maven.org/maven2/ch/qos/logback/logback- classic /
và bạn sẽ nhận được một trang như thế này, chọn phiên bản bạn cần, chỉ cần tận hưởng nó!
Tôi cũng đã sử dụng plugin nhật thực để đưa dự án vào không gian làm việc nhật thực. Vì tôi đã làm việc trong một dự án khác, tôi thấy rằng có thể làm việc với nhật thực nhưng không có plugin maven-eclipse. Điều đó làm cho nó dễ sử dụng hơn với các môi trường khác nhau và cho phép dễ dàng sử dụng maven hơn nhật thực. Và điều đó mà không thay đổi tệp pom.xml.
Vì vậy, tôi khuyên bạn nên tiếp cận Gabriel Gabrielirez.
Để gỡ lỗi, bạn cũng có thể sử dụng "Trình dịch ngược Java", chẳng hạn như: JAD và dịch ngược nguồn khi đang di chuyển (mặc dù nguồn được tạo không bao giờ giống với bản gốc). Sau đó cài đặt JAD làm plugin trong Eclipse hoặc IDE yêu thích của bạn.
Các kho lưu trữ của Maven cung cấp cách đơn giản để tải về các nguồn jar.
Tôi sẽ giải thích nó bằng cách sử dụng một bản trình diễn cho "spring-boot-actuator-autoconfigure".
Nếu không, bạn luôn có thể "git clone" repo từ github, nếu nó ở đó và lấy mã cụ thể.
Như được giải thích bởi những người khác, bạn có thể sử dụng "mvn phụ thuộc: nguồn" ra lệnh lấy và tạo jar nguồn cho phụ thuộc bạn đang sử dụng.
Lưu ý: Một số phụ thuộc sẽ không có nguồn.jar, vì những tệp này không chứa mã nguồn mà là tệp pom. ví dụ: spring-boot-starter-chấp hành . Như trong trường hợp này:
POM Starter là một tập hợp các mô tả phụ thuộc thuận tiện mà bạn có thể đưa vào ứng dụng của mình. Bạn nhận được một cửa cho tất cả các công nghệ liên quan đến mùa xuân và mà bạn cần, mà không cần phải tìm kiếm mã mẫu và sao chép vô số các mô tả phụ thuộc.
Tham khảo: Giới thiệu về Spring Boot Starters
Nếu bạn muốn tìm tệp jar nguồn cho bất kỳ tạo phẩm nào theo cách thủ công, hãy truy cập vị trí kho lưu trữ maven cho tạo phẩm cụ thể và trong Tệp nhấp vào 'xem Tất cả'. Bạn có thể tìm thấy tập tin jar nguồn.