2012-06-12 20 views
11

Jaka jest standardowa struktura katalogów projektu autonomicznej aplikacji Java SE (opartej na wierszach poleceń)?Jaka jest struktura katalogu projektu dla samodzielnej aplikacji Java SE?

src Folder będzie zawierał wszystkie moje pliki .java w prawidłowo zorganizowanych paczkach. Poza tym mam folder bin, który będzie zawierał moje pliki .class.

Mam pliki właściwości i pliki konfiguracyjne XML w moim projekcie. W jakim katalogu powinienem je umieścić? Czy powinienem utworzyć pakiet o nazwie com.myproject.config i umieścić w nim wszystkie pliki konfiguracyjne .xml?

Chcę, aby zależne słoiki zostały spakowane wraz z moim ostatecznym pakietem. Czy powinienem utworzyć folder (powiedzmy pod nazwą lib), aby przechowywać wszystkie te pliki .jar?

+0

Możesz zrobić tak, jak opisujesz. Nie ma ograniczeń ani lepiej akceptowanego sposobu. –

+1

Wiele z tego zależy od używanego narzędzia/IDE kompilacji. Zauważ, że przy samodzielnym pakowaniu, teoretycznie możliwe jest użycie prawie dowolnej struktury, podczas gdy IDE zwykle tworzy strukturę, której używa częściej. Jeśli chodzi o * "utwórz pakiet o nazwie com.myproject.config" * Tak, wydaje się to uzasadnione. –

+1

Myślę, że wykorzystanie Mavena do zbudowania twojego projektu jest dobrym rozwiązaniem. – plucury

Odpowiedz

17

Polecam trzymać się z domyślnym Maven układ (a także używać Maven jako build Tool)

produkcyjne klasy/Zasoby:

src/main/java 
src/main/resources 

dane testowe i ćwiczenia:

src/test/java 
src/test/resources 

Maven może również zadbać o odpowiednie pakowanie aplikacji za pomocą wszystkich niezbędnych słoików (poszukaj wtyczki do montażu maven)

+8

Dla leniwych: 'mkdir -p src/{główny, test}/{java, zasoby}' –

+1

Więcej szczegółów tutaj: https://maven.apache.org/guides/introduction/introduction-to-the-standard -directory-layout.html –

3

O ile mi wiadomo, nie ma czegoś takiego jak standardowa struktura projektu dla Javy jako takiej. Jednak różne narzędzia i IDE (takie jak Eclipse) mają standardową strukturę.

Maven, narzędzie do budowania Java, z drugiej strony ma bardzo jasno zdefiniowaną (domyślną) strukturę projektu. Tam wszystkie pliki źródłowe Java są umieszczane w folderze src/main/java, a wszystkie pliki zasobów (takie jak pliki konfiguracyjne) są umieszczane w src/main/resources.

Oto bardzo szybkie wprowadzenie do Maven, jeśli nie wie jeszcze: Maven in 5 Minutes


chodzi o twoje pytanie o opakowaniach z zależnościami, tutaj jest wycięte z jednego z moich Mavena plików POM, który używa Assembly Plugin utworzyć plik JAR ze wszystkimi zależnościami obejmowały:

<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

powszechnie stosowane struktura jest następująca:

  • src - zawiera wszystkie pliki źródłowe i ewentualnie następującym jak również (może być daleko w dół drzewa folderów):
    • zasobów - zawiera zasoby, takie jak właściwości plików
    • config - wszystko config związane
  • lib - folder zawierający do bibliotek, być umieszczone w oddzielnych subfolderrs
  • bin - zawiera skompilowane klasy
0

src/com.enterprise_name.project_name. Main.java (główna klasa)

src/com.enterprise_name.project_name.model. (tutaj wszystkie klasy modeli)

src/com.enterprise_name.project_name.view. (tutaj wszystkie klasy widoku, JFrame, Jdialog itd.)

src/nazwa_produktu.nazwa_projektu.view.resources. (tutaj wszystkie pliki i obrazy użyte w widokach * Uwaga:)

src/com.enterprise_name.project_name.controller. (tutaj wszystkie klasy Controller)

lib/ (tu wszystkie zewnętrzne biblioteki - nie zapomnij dodać zbudować ścieżkę)

* Uwaga jeśli potrzebujesz pliku zasobów (XML, plik konfiguracyjny, etc) Utwórz pakiet .resources. w określonym miejscu, gdzie potrzebujesz (model, kontroler, widok)