我们的软件是用 Java 编写的,包含许多 (7) 个项目。
这些项目是 Netbeans Ant 项目。
我正在考虑将它们转换为 maven2。
我在哪里可以找到做这种事情的一些提示?
不要读那本书。它只会让你感到困惑。改为阅读本书:“Maven - 权威指南”http://www.sonatype.com/books/maven-book/reference/ .
此外,maven 站点有很多信息,但结构很糟糕,所以你需要使用谷歌来导航。
这是我的建议:
手动执行此操作,而不是使用来自 IDE 的“自动”“帮助”。 Maven 集成还没有那么好,在任何 IDE 中都没有。 确保您的程序项目被划分为一个通用的伞形模块下的模块,以便每个模块生成一个二进制工件(jar、war 等),可能伴随着该工件背后源代码的 javadoc,一个带有源代码等。基本原则是每个模块生成一个工件,包含该模块下的所有非测试代码。您可以在项目仍由 ant 构建时执行此操作。 每个模块都应该符合标准的 maven 目录布局。构建目标位于 [module]/target/[output-type,例如“类”]。源代码在 [module]/src/main/[src-type e.g. 下"java"] 和 [module]/test/[src-type]。该工件包含 src/main 下的所有代码,而 src/test 下没有任何代码,因为它构建到目标目录中。您可以在 ant 仍然构建时执行此操作。 首先转换与项目中其他模块没有依赖关系的子模块。 现在您可以创建具有工件类型“pom”的父 maven 模块 pom.xml,由以下模块之一组成。为第一个子模块(只有外部依赖项)创建一个子模块,使用伞形模块作为“父”。请记住,您需要为父级指定版本。请记住也将子模块添加为父模块中的“模块”。当您像这样创建多模块项目时,始终使用 ${project.version} 作为子模块中的版本。父级下的所有模块必须在一次操作中同时发布,如果您使用此设置,maven 将确保所有模块的版本字段保持相同,并在发布期间随处更新。这可能会使重新使用现有的编号方案变得困难,但这并不重要。无论如何,您永远不会用完版本号。 添加必要的依赖项,并确保您可以使用父模块中的“mvn clean install”命令一起构建父模块和子模块。 以相同的方式继续处理其余模块。对同一父项目下其他模块的依赖也应该使用 ${project.version} 作为它们所依赖的“版本”,意思是“与此相同的版本”。请注意,为了构建,您所依赖的模块必须使用“mvn install”构建,以便将其部署到您的本地(计算机)存储库。否则依赖模块将无法找到这些类。 maven 中的模块之间没有源代码依赖关系,只有对安装在本地和远程存储库中的构建和打包版本的依赖关系。如果您来自 ant-projects,这可能会非常令人困惑。从根模块构建,直到您对此感到满意为止。需要两天时间。 不要在 IDE 中使用 maven 集成。这是一个坏主意。使用“mvn idea:idea”或“mvn eclipse:eclipse”将您的工作区设置为非 maven 普通 IDE 项目。 maven 和 IDE 中的模块间依赖机制并不相同,永远不会相同。此外,如果您有几个相互依赖的 mavenized 项目,您希望在您的工作区中拥有其中的几个,并在它们之间设置依赖关系。如果您在与父模块相同的目录中创建一个名为“workspace.xml”(或其他任何内容)的单独 maven 项目文件,并将其设置为包含模块的多模块项目,则可以使用 mvn idea:idea/eclipse:eclipse 执行此操作.”和“../otherproject”(这里只有单向引用,没有父引用)。如果您运行“mvn idea:idea/eclipse:eclipse -f workspace.xml”,您将获得一个将所有这些模块链接在一起的工作区。没有 IDE 集成可以让您做到这一点。这听起来像是很多额外的工作,但是workspace.xml 文件确实很小。它不必包含所有依赖项之类的内容,只需包含对要在 IDE 中绑定(bind)在一起的模块的引用。