2012-07-04 21 views
14

Có cách nào để liên kết từ gói-info.java đến một gói khác nằm ngoài gói này (trong cùng một Dự án) không?@link đến một gói khác bên trong gói package-info.java

Nếu tôi cố gắng làm điều này trong java 7 Tôi luôn luôn nhận được:

warning - Tag @link: reference not found: 
+0

Bạn đã tìm hiểu cách thực hiện việc này chưa? (và: bạn * làm * muốn tham khảo một gói khác, không phải đôi khi bên trong gói, phải không?) – scravy

+0

@scravy thực sự câu hỏi này thực sự là cũ. Tôi nghĩ rằng tôi không bao giờ tìm thấy một giải pháp (điều này đã được cho một dự án với một dòng rất gần chết). Tôi sẽ xem xét lại nó trong năm mới. – someonr

Trả lời

-3

bạn phải import gói sử dụng rất javadoc biết các không gian tên bạn đang đề cập đến.

package-info.java nên xem xét liên kết này:

import package.subpackage.ClassnameYouWantToLink; 
/** 
* {@link ClassnameYouWantToLink} 
*/ 

nếu bạn không muốn nhập khẩu các gói bạn cần đầy đủ quallified gói-Tên trước mặt của ClassName:

/** 
* {@link package.subpackage.ClassnameYouWantToLink} 
*/ 
+1

Tôi nghĩ rằng op muốn liên kết đến gói, không phải là một đối tượng bên trong gói. – scravy

+0

Một gói là một thư mục và không thể chứa chính Java-doc (và bạn chỉ có thể liên kết đến các tệp). Vì vậy, như một quy ước bạn thêm một lớp 'package-info' trong gói và liên kết đến lớp này. – Simulant

+0

Bạn không thể sử dụng lệnh nhập trong package-info.java cho mục đích này. Quá trình nhập xuất hiện sau gói và javadoc nằm trên phần tử gói, do đó việc nhập là sau javadoc và trình biên dịch javadoc không nhìn thấy nó. –

6

Liên kết đơn giản với @docroot hoạt động cho tài liệu Java chuẩn:

/** 
* See the 
* <a href="{@docRoot}/com/mycorp/package-summary.html#package_description"> 
* package overview 
* </a> for more information. 
*/ 

Việc bạn có cần điều này trong package-info.java hay trong một lớp không quan trọng, thẻ {@link} không thể xử lý các liên kết đến các gói.

+1

Điều này có thể hoạt động khi bạn thực sự tạo tài liệu nhưng không hoạt động với các tài liệu bật lên động trong Eclipse. Eclipse hỗ trợ liên kết {@link com.mypackage}. –

0

Đây là chi tiết của một workaround, nhưng ít nhất nếu bạn liên kết đến một số tập tin trong gói com.foo.Bar Eclipse sẽ cho phép bạn di chuyển từ Bar vào mô tả package-info.java bởi lơ lửng trên/nhấp vào foo sau đó trong Inline xem trước, vv

9

Cả hai @link@seesupport linking to packages.

Tôi có đoạn mã sau vào một trong package-info.java tác phẩm của tôi và công cụ javadoc tạo liên kết:

 
/** 
* <p>Note, however, that the classes in {@link gov.va.med.srcalc.domain} 
* define the vast majority of the data mapping via JPA annotations.</p> 
*/ 
package gov.va.med.srcalc.db;

Chúng tôi sử dụng Gradle như công cụ xây dựng của chúng tôi và tôi đã tìm thấy, tuy nhiên, Gradle không tạo ra liên kết và tạo cảnh báo reference not found: gov.va.med.srcalc.domain. Có lẽ đó là một lỗi trong Gradle.

0

Một nửa câu trả lời là {@link some.package.name} thực sự là liên kết đến gói.

Một nửa khác của câu trả lời, như tôi chỉ được tìm ra bởi may mắn, là javadoc phải được gọi với tên gói trên dòng lệnh. Vâng, đây là một đoán, bởi vì tôi đang thực sự sử dụng nhiệm vụ <javadoc/> của kiến, nhưng ngay sau khi tôi thêm <packageset/>, cảnh báo reference not found biến mất và các liên kết có sẵn trong javadoc được tạo.

Các vấn đề liên quan