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

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

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

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

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

4 ответа

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

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

src/main/java
src/main/resources

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

src/test/java
src/test/resources

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

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.(здесь все файлы и изображения, используемые в представлениях * примечание)

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

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

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

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

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

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

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

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


Что касается вашего вопроса об упаковке с зависимостями, вот фрагмент одного из моих файлов Maven POM, который использует плагин Assembly для создания файла 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>
Другие вопросы по тегам