首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传统开源Java应用程序

传统开源Java应用程序
EN

Stack Overflow用户
提问于 2011-08-14 09:35:03
回答 5查看 201关注 0票数 4

我已经用Java进行了一段时间的“家庭项目”,现在需要通过github或Google代码等存储库来提供我的一些项目。

只要我是该项目的唯一开发人员,只要我一直在Eclipse中工作,构建和运行它就绝对没有问题。一切都很好。问题基本上是,如果有人让我分享,我该怎么办?

要做的第一件事是用Maven这样的工具构建项目。在这种情况下,无论有人安装了Eclipse,还是更喜欢IDEA,他都可以下载我的项目并使用Maven进行构建。或者,导入到Eclipse/IDEA和build。

因此,为了澄清这个问题,这里有两点:

  1. 我的目录结构应该是什么样子?像src,bin之类的文件夹还有别的吗?
  2. 我的应用程序应该以什么方式运行?例如,我的应用程序需要log4j才能运行。Maven在构建包时解决此依赖关系。但是在构建包时,您应该手动为log4j (使用java -cp ...)提供路径--如果我只想为用户提供.sh和.cmd脚本,那么如何消除这一要求呢?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-14 10:18:03

根据我的个人经验,maven是构建和管理依赖关系的最佳可用工具,因此我对您的问题的答案都是关于maven的。此外,对于maven,您只需要提供包含依赖项定义和项目构建配置的pom.xml文件。您共享的项目不需要包含任何JAR内部,因为它过去是与蚂蚁为基础的项目。

我的目录结构应该是什么样子?像src,bin之类的文件夹还有别的吗?

与标准maven项目一样:) (http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html)

  • src/main/java应用程序源(Java类)
  • src/test/java应用程序测试( com.company.Foo类的单元测试也应该在com.company包中,它引入了一些顺序,有时使测试更容易)
  • src/main/resources应用程序资源,例如服务国际化的message.properties文件
  • 用于测试的src/test/resources资源,例如,如果您希望使用http服务器返回某些内容进行集成测试,则转储网站。

还有其他目录,如src/main/webapp --它们都在maven文档中描述。

我的应用程序应该以什么方式运行?例如,我的应用程序需要log4j才能运行。Maven在构建包时解决此依赖关系。但是在构建包时,您应该手动为您提供log4j的路径(使用java -cp .)--如果我只想为用户提供.sh和.cmd脚本,那么如何消除这个要求呢?

Maven按照在pom.xml文件中定义的配置来处理所有这些事情。如果您的程序需要一些额外的库,maven将为您下载它,并放置在包含应用程序的包中。例如,如果应用程序服务器(log4j JAR)将提供某些依赖项,您还可以设置该依赖项,然后,它将用于运行应用程序,用于单元测试,但它不会位于最终包中。

maven提供的更好的特性是构建概要文件。例如,您可以在日常开发模式中使用一些设置,但在构建用于生产的包时,将使用其他设置。

票数 1
EN

Stack Overflow用户

发布于 2011-08-14 09:46:26

如果您和您的同行只想继续使用Eclipse,那么共享项目,包括.project和其他隐藏文件,并避免引用外部jar文件和其他资源。如果您需要log4j.jar,那么将它放在您的项目中并将其添加到构建路径中。

这是非常好的工作,即使是对多个程序员,是最快的方式起来和运行。

票数 5
EN

Stack Overflow用户

发布于 2011-08-14 09:55:05

我的目录结构应该是什么样子?像src,bin之类的文件夹还有别的吗?

如果您正在使用maven,则会处理它。(src/main/java,src/test/java等)

我的应用程序应该以什么方式运行?

我觉得maven exec插件应该能帮到你。看看http://mojo.codehaus.org/exec-maven-plugin/java-mojo.html,看看它是否符合要求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7056080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档