使用Netbeans/ant部署java(命令行)应用程序
我终于成功地用一个旧的独立(而不是Web)Java应用程序创建了一个Netbeans项目,该应用程序只由单个.Java源代码组成。现在我有两个关于Netbeans Subversion交互和应用程序部署的问题:使用Netbeans/ant部署java(命令行)应用程序,java,deployment,netbeans,ant,Java,Deployment,Netbeans,Ant,我终于成功地用一个旧的独立(而不是Web)Java应用程序创建了一个Netbeans项目,该应用程序只由单个.Java源代码组成。现在我有两个关于Netbeans Subversion交互和应用程序部署的问题: 您是否通常将所有Netbeans项目文件签入到存储库中 如果我使用Netbeans(或ant)构建项目,我会得到一个.jar文件和一些额外的jar库。为了让应用程序在服务器上正常运行,需要一些额外的配置文件和目录(例如日志)。该应用程序本身是一个J2SE应用程序(无框架),在Linux平
感谢您提供的提示。理想情况下,您不应该将应用程序源代码和配置绑定到特定的IDE 问题是
- 我建议你不要。使您的存储库结构独立于IDE
- 您可能需要更改应用程序,使其结构非常通用,并且可以在任何IDE中编辑 这是一个网络应用程序吗?独立的Java应用程序?如果你澄清这些,回答你的问题就会更容易
- 我们不签入/build或/dist目录
我们倾向于将此结构用于SVN中的Netbeans项目:
/project1/
/trunk
/tags/
/1.0
/1.1
/binaries/
/1.0
/1.1
当需要更改时,我们从trunk/签出netbeans项目,并对其进行更改并将其签回。一旦需要发布项目,我们就将netbeans项目文件的SVN副本复制到下一个标记版本。我们还获取可部署(JAR或WAR)的副本,并将其与任何依赖项和配置文件一起放在binaries下的version目录中
通过这样做,我们有了一个与源代码分离的干净、版本化的可部署系统。可部署版本的名称为-project1-1.0.jar、project1-1.1jar等等
我不同意talonx关于保持您的源代码不特定于IDE的观点-通过不将IDE文件与源代码一起存储在SVN中,您将给签出、更改、签入和部署周期增加额外的复杂性。如果您将IDE项目文件存储在SVN中,您只需签出项目,启动IDE并点击build。您不必经历在IDE中设置新项目的步骤,包括您创建的文件、设置依赖项等。这节省了时间,意味着所有开发人员都使用相同的设置,从而减少了错误和差异。您最不希望开发人员签出一个项目来修复一个小错误,并且必须花费时间来查找依赖项并进行设置
版本号由您决定——命名JAR并不是一个坏主意。我还有一个习惯,就是在启动时打印版本号,这很方便。这一点很好,但由于Netbeans已经在使用ant进行构建/测试机制,我认为至少签入build.xml文件是有意义的(即使它们的结构看起来相当复杂)。只要构建XML没有任何特定于Netbeans的内容(可以吗?),就可以签入它们。但是我看到Netbeans在build.xmls中生成了一些奇怪的东西,所以我会对这种事情保持警惕