Какова структура каталога проекта для автономного приложения Java SE?

Какова стандартная структура каталога проектов автономного приложения Java SE (на основе командной строки)?

src папка будет содержать все мои файлы .java в правильно организованных пакетах. Помимо этого у меня есть папка bin, которая будет содержать мои файлы .class.

У меня есть файлы свойств и файлы конфигурации XML в моем проекте. В какой директории я должен разместить их? Должен ли я создать пакет с именем com.myproject.config и поместить в него все файлы конфигурации .xml?

Я хочу, чтобы зависимые банки были упакованы вместе с моим окончательным пакетом. Так что я должен создать папку (например, по имени lib), чтобы хранить все эти файлы .jar?

Ответ 1

Я бы рекомендовал придерживаться стандартного Maven макета (а также использовать maven как инструмент сборки)

Производственные классы/ресурсы:

src/main/java
src/main/resources

Данные и классы тестов:

src/test/java
src/test/resources

Maven также может позаботиться о том, чтобы правильно упаковать ваше приложение со всеми необходимыми банками (ищите плагин сборки maven)

Ответ 2

Насколько я знаю, для Java нет такой вещи, как стандартная структура проекта. Однако различные инструменты и IDE (например, Eclipse) имеют стандартную структуру.

Maven, с помощью инструмента построения Java, с очень четко определенной (по умолчанию) структурой проекта. Там все исходные файлы Java помещаются в папку src/main/java, и все файлы ресурсов (например, ваши файлы конфигурации) помещаются в src/main/resources.

Вот очень быстрое введение в Maven, если вы еще этого не знаете: Maven через 5 минут


Что касается вашего вопроса об упаковке с зависимостями, здесь вырезано из одного из моих файлов MOM Maven, в котором используется Assembly Plugin для создания JAR файл со всеми зависимостями:

<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

Обычно используемая структура выглядит следующим образом:

  • src - содержит все ваши исходные файлы и, возможно, следующее (может быть далеко от дерева папок):
    • resources - содержит ресурсы, такие как файлы свойств
    • config - все связанные с конфигурацией
  • lib - папка, содержащая ваши библиотеки, возможно, размещенные в отдельных подпапках
  • bin - содержит скомпилированные классы

Ответ 4

src/com.enterprise_name.project_name. Main.java(основной класс)

src/com.enterprise_name.project_name.model. (здесь все классы моделей)

src/com.enterprise_name.project_name.view. (здесь все классы просмотра, JFrame, Jdialog и т.д.)

src/com.enterprise_name.project_name.view.resources. (здесь все файлы и изображения, используемые в представлениях * note)

src/com.enterprise_name.project_name.controller. (здесь все классы контроллера)

lib/ (здесь все внешние библиотеки - не забудьте добавить путь сборки)

* note, если вам нужен файл ресурсов (xml, файл конфигурации и т.д.), создайте пакет .resources. в определенном месте, где вам нужно (модель, контроллер, просмотр)