2012-06-12 77 views
11

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

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

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

我想要依赖的罐子与我的最终包装一起打包。所以我应该创建一个文件夹(名称为lib)来保存所有这些.jar文件?

+0

您可以按照您的描述进行操作。没有限制,也没有更好的接受方式。 –

+1

很多这取决于你正在使用哪个构建工具/ IDE。请注意,如果将它自己封装起来,理论上可以使用几乎任何结构,而IDE通常会设置一个更常用的结构。至于*“创建名为com.myproject.config的包”*是的,这似乎是合理的。 –

+1

我认为使用Maven构建你的项目是一个不错的选择。 – plucury

回答

17

我会建议使用默认Maven布局要坚持(也使用Maven作为构建工具)

生产类/资源:

src/main/java 
src/main/resources 

测试数据和类:

src/test/java 
src/test/resources 

Maven也可以小心地将您的应用程序与所有必需的jar文件打包在一起 (查找maven assembly插件)

+8

对于懒惰:'mkdir -p src/{main,test}/{java,resources}' –

+1

更多细节在这里:https://maven.apache.org/guides/introduction/introduction-to-the-standard -directory-的layout.html –

3

据我所知,没有像Java本身的标准项目结构这样的事情。但是,各种工具和IDE(如Eclipse)确实具有标准结构。

Maven,另一方面,Java的构建工具有一个非常明确的(默认)项目结构。在那里,所有Java源文件被放置在src/main/java文件夹中,并且所有资源文件(如配置文件)都被放置在src/main/resources中。

这里是一个非常简单介绍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

通常使用的结构如下:

  • SRC - 包含所有的源文件,也可能是以下以及(可能是远了文件夹树):
    • 资源 - 包括资源,如属性文件
    • 配置 - 一切配置相关
  • LIB - 包含你的库文件夹,可能是放置在单独subfolderrs
  • 斌 - 包含编译的类
0

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