我已经用Java进行了一段时间的“家庭项目”,现在需要通过github或Google代码等存储库来提供我的一些项目。
只要我是该项目的唯一开发人员,只要我一直在Eclipse中工作,构建和运行它就绝对没有问题。一切都很好。问题基本上是,如果有人让我分享,我该怎么办?
要做的第一件事是用Maven这样的工具构建项目。在这种情况下,无论有人安装了Eclipse,还是更喜欢IDEA,他都可以下载我的项目并使用Maven进行构建。或者,导入到Eclipse/IDEA和build。
因此,为了澄清这个问题,这里有两点:
java -cp ...)提供路径--如果我只想为用户提供.sh和.cmd脚本,那么如何消除这一要求呢?发布于 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)
message.properties文件还有其他目录,如src/main/webapp --它们都在maven文档中描述。
我的应用程序应该以什么方式运行?例如,我的应用程序需要log4j才能运行。Maven在构建包时解决此依赖关系。但是在构建包时,您应该手动为您提供log4j的路径(使用java -cp .)--如果我只想为用户提供.sh和.cmd脚本,那么如何消除这个要求呢?
Maven按照在pom.xml文件中定义的配置来处理所有这些事情。如果您的程序需要一些额外的库,maven将为您下载它,并放置在包含应用程序的包中。例如,如果应用程序服务器(log4j JAR)将提供某些依赖项,您还可以设置该依赖项,然后,它将用于运行应用程序,用于单元测试,但它不会位于最终包中。
maven提供的更好的特性是构建概要文件。例如,您可以在日常开发模式中使用一些设置,但在构建用于生产的包时,将使用其他设置。
发布于 2011-08-14 09:46:26
如果您和您的同行只想继续使用Eclipse,那么共享项目,包括.project和其他隐藏文件,并避免引用外部jar文件和其他资源。如果您需要log4j.jar,那么将它放在您的项目中并将其添加到构建路径中。
这是非常好的工作,即使是对多个程序员,是最快的方式起来和运行。
发布于 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,看看它是否符合要求。
https://stackoverflow.com/questions/7056080
复制相似问题