2013-07-05 31 views
6

3 Câu hỏi:Phụ thuộc Maven với javadocs

Dưới đây là hai phụ thuộc maven cho JUnit. Tôi đã được cọ rửa các interwebs trong nhiều giờ và dường như không thể xác định nếu một trong hai thứ hai là Javadoc + code hoặc chỉ Javadoc. Tôi có cần một hoặc cả hai? Hơn nữa, cách hiệu quả nhất để bao gồm Javadocs trong một dự án phát triển chưa có trong xây dựng sản xuất là gì? (Tôi không muốn tải xuống javadocs theo cách thủ công cho mọi phụ thuộc trên mỗi máy.)

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.11</version> 
</dependency> 

~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.11</version> 
    <classifier>javadoc</classifier> 
</dependency> 

EDIT: Câu hỏi:

  • sự khác biệt giữa những phụ thuộc như thế nào?
  • Tôi có cần cả hai để có thể sử dụng phụ thuộc & có Javadoc trong tay không?
  • Phương pháp hay nhất để bao gồm Javadocs để phát triển là gì?
+0

Điều này sẽ giúp ích (Nếu tôi nhận được một trong những câu hỏi của bạn đúng): http://stackoverflow.com/questions/5780758/maven-always-download-sources-and-javadocs –

+0

@Andreas_D Tôi đã xem xét điều đó trước . Tôi đã làm đề nghị thêm nhưng có một chút bị mất ở bước này: "Sau đó hãy chắc chắn rằng activeProfiles bao gồm hồ sơ mới." – AnthonyW

+0

Cần đủ để sao chép mã từ câu trả lời ở đó vào tệp '~/.m2/settings.xml' của bạn. Bạn có thể phải thêm phần tử hồ sơ vào hồ sơ của bạn (nếu đã có một số xác định) –

Trả lời

8

Nói chung, IDE của bạn sẽ xử lý độ phân giải của javadoc cho bạn trong dự án maven. Đây là giả định IDE của bạn hiểu maven - ví dụ: netbeans, intellij hoặc eclipse w/m2e.

Tạo phẩm thứ hai chỉ là javadocs. Tạo phẩm đầu tiên là mã. Hầu như không bao giờ có lý do chính đáng để bao gồm tạo phẩm javadoc như là một phụ thuộc.

+2

CẢM ƠN BẠN !! Đoạn thứ hai đó trả lời khoảng nửa tá câu hỏi mở trên SO. – AnthonyW

+1

Tôi đang sử dụng Eclipse w/m2e. Một khi tôi buộc phải phụ thuộc, JUnit trong ví dụ này, có một nơi nào đó tôi có thể nhấp chuột phải và yêu cầu nó kéo tài liệu? – AnthonyW

+4

Nếu bạn ctrl + bấm vào một trong các phương thức trong JUnit, bạn sẽ thấy nó kéo trong mã. Sau đó, khi bạn di chuột qua các phương pháp (ví dụ: 'org.junit.Assert.assertNotNull'), bạn sẽ bắt đầu thấy javadocs điền nếu chúng chưa bắt đầu. –

1

Tôi tình cờ gặp vấn đề này khi tạo dự án maven trong nhật thực và không phải javadoc cũng như nguồn phụ thuộc của tôi khi được đính kèm vào dự án của tôi và tôi tự hỏi phụ thuộc nào cần thêm.

gì giúp tôi được thêm

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-source-plugin</artifactId> 
     </plugin> 

     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-javadoc-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

để pom.xml của tôi. Bằng cách đó, bạn chỉ phải sử dụng phụ thuộc đầu tiên, và maven/eclipse chăm sóc tải xuống phần thứ hai (tức là, như được chỉ ra trong câu trả lời khác, chỉ có javadoc).

6

Thông thường Javadocs không được sử dụng chủ yếu làm phụ thuộc. Bởi vì đây không phải là yêu cầu tại biên dịch cũng không phải thời gian chạy. Nó chỉ là để giúp các nhà phát triển trong khi phát triển hoặc gỡ lỗi.

Giả sử sử dụng IDE java Eclipse, chúng tôi có thể sử dụng tài liệu java như được tham chiếu. Sau đây là các cách tiếp cận chúng ta có thể kết hợp javadocs/sources với các lọ tương ứng.

1. Nếu dự án không phải là maven: Tải xuống javadocs jar hoặc tệp nén, mọi thứ có sẵn và đặt trong một số thư mục. Nhấp chuột phải vào dự án ứng dụng trong IDE Eclipse, nhấp vào Thuộc tính và chọn Java Build Path sau đó chọn tab Libraries trong Java Build Path. Bây giờ mở rộng lọ bạn muốn liên kết với các tài liệu/nguồn java. Chọn liên kết vị trí Javadoc và nhấp vào nút Chỉnh sửa, một cửa sổ mới xuất hiện nơi chúng tôi cần chọn đường dẫn jar javadocs. Nhấn OK và chúng tôi đã liên kết javadoc/source với các lọ tương ứng.

enter image description here

2.Nếu đó là dự án maven

Nếu chúng tôi đang sử dụng dự án Maven, hãy chuyển đến tệp jar dưới sự phụ thuộc Maven trong dự án trong khung nhìn Project Explorer như được hiển thị bên dưới. Bây giờ kích chuột phải vào tệp jar bạn muốn thêm Javadoc/source,  chọn Maven rồi nhấp vào Javadoc hoặc Source bạn muốn liên kết với dự án. Bây giờ IDE sẽ tự động tải về javadoc/source cần thiết và sẽ liên kết nó với jar tương ứng trong dự án.

enter image description here

Bạn có thể xác minh điều này bằng cách nhấp chuột phải vào dự án trong IDE và click vào Java Build Path và chọn tab Libraries dưới Java Build Path và sau đó mở rộng jar mong muốn, ở đây khi bạn nhấp vào Nút Edit, bạn sẽ thấy đường dẫn liên kết của Javadoc/Source với jar tương ứng như hình dưới đây.

enter image description here

3. Nếu đó là dự án Maven và chúng tôi đang thiết lập các hành vi mặc định:

Eclipse sẽ aquatically tải về javadoc/nguồn cùng với jar yêu cầu chính tại bắt đầu. Theo hướng dẫn cài đặt mặc định cho Maven để tải xuống Javadoc/sources cho tất cả các lọ được liên kết trong dự án.

Bấm Windows - sở thích - chọn Maven và nhấp vào hộp kiểm Tải Artifact Javadoc như hình dưới đây

enter image description here

Bây giờ bấm vào áp dụng và lưu nó và bây giờ khi bạn tạo dự án Maven mới, theo mặc định Javadocs sẽ được tải xuống và liên kết với tất cả các lọ phụ thuộc trong dự án.
Bạn có thể xác minh bằng cách nhấp chuột phải vào dự án và Thuộc tính và trong đường dẫn Xây dựng Java có thể thấy các javadocs được liên kết với tất cả các lọ như hình dưới đây.

enter image description here

Nếu dự án của bạn là dự án Maven Sau đó nó luôn luôn tốt nhất để sử dụng phương pháp thứ 2 vì bằng cách sử dụng phương pháp này IDE và Maven, sẽ chăm sóc của tải đúng phiên bản của Javadoc/nguồn và liên kết nó với bình tương đối là tốt.

Phương pháp tiếp cận thứ ba hơi tốn kém vì javadoc/sources sẽ được tải xuống cho tất cả các lọ phụ thuộc, có thể bạn không quan tâm đến javadocs/nguồn cho tất cả các lọ phụ thuộc.