独立Java SE应用程序的项目目录结构是什么?

时间:2012-06-12 07:16:20

标签: java deployment software-packaging

独立Java SE(基于命令行)应用程序的标准项目目录结构是什么?

src文件夹将包含正确组织的包中的所有.java个文件。除此之外,我有bin文件夹,其中包含我的.class文件。

我项目中的属性文件和XML配置文件。我应该在哪个目录中放置它们?我应该创建一个名为com.myproject.config的包,并将所有.xml配置文件放在其中吗?

我希望依赖的罐子与我的最终包装一起包装。那么我应该创建一个文件夹(例如名称lib)来保存所有这些.jar文件吗?

4 个答案:

答案 0 :(得分:17)

我建议坚持使用默认的Maven布局(并使用maven作为构建工具)

富有成效的课程/资源:

src/main/java
src/main/resources

测试数据和类:

src/test/java
src/test/resources

Maven还可以使用所有必要的罐子妥善包装您的应用程序 (寻找maven组件插件)

答案 1 :(得分:4)

常用的结构如下:

  • src - 包含所有源文件,也可能包含以下内容(可能位于文件夹树的下方):
    • 资源 - 包含属性文件等资源
    • config - 所有配置相关的
  • lib - 包含您的库的文件夹,可能放在单独的子文件夹中
  • bin - 包含已编译的类

答案 2 :(得分:3)

据我所知,Java本身没有标准的项目结构。但是,各种工具和IDE(例如Eclipse)都有标准结构。

另一方面,

Maven是Java的构建工具,具有非常明确定义的(默认)项目结构。在那里,所有Java源文件都放在src/main/java文件夹中,所有资源文件(如配置文件)都放在src/main/resources中。

如果您还不了解Maven,请快速介绍一下Maven:Maven in 5 Minutes


关于使用依赖项进行打包的问题,​​这里是我的一个Maven POM文件中的剪辑,它使用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 :(得分:1)

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。在你需要的特定地方(模型,控制器,视图)