2012-06-12 35 views
11

Cấu trúc thư mục dự án chuẩn của một ứng dụng Java SE độc lập (Dòng lệnh) là gì?Cấu trúc thư mục dự án cho một ứng dụng Java SE độc lập là gì?

src thư mục sẽ chứa tất cả các tệp .java của tôi trong các gói được sắp xếp hợp lý. Ngoài ra, tôi có thư mục bin chứa các tệp .class của tôi.

Tôi đã có tệp Thuộc tính và tệp cấu hình XML trong dự án của mình. Trong thư mục nào tôi nên đặt chúng? Tôi có nên tạo một gói có tên là com.myproject.config và đặt tất cả các tệp cấu hình .xml trong đó không?

Tôi muốn các chai phụ thuộc được đóng gói cùng với gói cuối cùng của tôi. Vì vậy, tôi nên tạo một thư mục (nói theo tên lib) để giữ tất cả các tệp .jar này?

+0

Bạn có thể làm như bạn mô tả. Không có ràng buộc cũng như cách được chấp nhận tốt hơn. –

+1

Rất nhiều điều này phụ thuộc vào công cụ xây dựng/IDE bạn đang sử dụng. Lưu ý rằng nếu đóng gói nó tất cả lên cho mình, về mặt lý thuyết có thể sử dụng hầu như bất kỳ cấu trúc nào, trong khi một IDE thường sẽ thiết lập một cấu trúc mà nó thường sử dụng hơn. Như để * "tạo một gói có tên com.myproject.config" * Có, điều đó có vẻ hợp lý. –

+1

Tôi nghĩ rằng sử dụng Maven để xây dựng dự án của bạn là một lựa chọn tốt. – plucury

Trả lời

17

tôi sẽ khuyên bạn nên gắn bó với mặc định Maven layout (và cũng có thể sử dụng maven như công cụ xây dựng)

lớp suất/nguồn:

src/main/java 
src/main/resources 

dữ liệu thử nghiệm và các lớp:

src/test/java 
src/test/resources 

Maven cũng có thể cẩn thận để đóng gói ứng dụng của bạn đúng cách với tất cả các lọ cần thiết (tìm plugin lắp ráp maven)

+8

Đối với người lười biếng: 'mkdir -p src/{main, test}/{java, resources}' –

+1

Thông tin chi tiết tại đây: https://maven.apache.org/guides/introduction/introduction-to-the-standard -directory-layout.html –

3

Theo tôi biết, không có thứ gì như cấu trúc dự án tiêu chuẩn cho Java. Tuy nhiên, các công cụ và IDE khác nhau (chẳng hạn như Eclipse) có một cấu trúc tiêu chuẩn.

Maven, một công cụ xây dựng cho Java, mặt khác có cấu trúc dự án (mặc định) được xác định rất rõ ràng. Ở đó, tất cả các tệp nguồn Java được đặt trong thư mục src/main/java và tất cả các tệp tài nguyên (như tệp cấu hình của bạn) được đặt trong src/main/resources.

Dưới đây là một giới thiệu rất nhanh chóng để Maven, nếu bạn không biết nó được nêu ra: Maven in 5 Minutes


Về câu hỏi của bạn về bao bì với phụ thuộc, đây là một snipped từ một trong các file POM Maven tôi có sử dụng các Assembly Plugin để tạo ra một tập tin JAR với tất cả phụ thuộc bao gồm:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>...</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
3

một cấu trúc thường được sử dụng như sau:

  • src - chứa tất cả các file nguồn của bạn, và có thể là sau khi tốt (có thể là xa xuống cây thư mục):
    • nguồn lực - chứa tài nguyên như các thuộc tính tập tin
    • config - tất cả mọi thứ cấu hình liên quan
  • lib - một thư mục chứa thư viện của bạn, có thể đặt trong subfolderrs riêng
  • bin - lớp chứa biên soạn
0

src/com.enterprise_name.project_name. Main.java (lớp chính)

src/com.enterprise_name.project_name.model. (ở đây tất cả các lớp mô hình)

src/com.enterprise_name.project_name.view. (ở đây tất cả các lớp xem, JFrame, Jdialog, v.v.)

src/com.enterprise_name.project_name.view.resources. (ở đây tất cả các tập tin và hình ảnh được sử dụng trong các quan điểm * lưu ý)

src/com.enterprise_name.project_name.controller. (ở đây tất cả các lớp điều khiển)

lib/ (ở đây tất cả các thư viện bên ngoài - Đừng quên thêm để xây dựng đường dẫn)

* lưu ý nếu bạn cần một số tập tin tài nguyên (xml, tập tin cấu hình, vv) tạo một gói .resources. ở nơi cụ thể nơi bạn cần (mô hình, bộ điều khiển, chế độ xem)

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