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