Maven 2 现有Ant构建文件的简单Mavenization

Maven 2 现有Ant构建文件的简单Mavenization,maven-2,ant,Maven 2,Ant,如果您有一个现有的ant文件,那么将项目转换为Maven的最佳方式是什么。我查过范特之类的东西,但如果我要搞砸这些东西,我还不如对马文全力以赴。我希望存在一些东西,可以基于现有的build.xml为我启动pom.xml,但我还没有找到任何东西。建议?我不知道有什么好的自动化方法来完成这样的迁移,因为事情可能太不一样了,所以我会手动一步一步地完成,并保持现有的ant构建与未来的新构建并行,直到整个迁移完成(从技术和人工角度来看) 首先,重构现有的Ant构建,使其与Maven约定保持一致: 使事情

如果您有一个现有的ant文件,那么将项目转换为Maven的最佳方式是什么。我查过范特之类的东西,但如果我要搞砸这些东西,我还不如对马文全力以赴。我希望存在一些东西,可以基于现有的build.xml为我启动pom.xml,但我还没有找到任何东西。建议?

我不知道有什么好的自动化方法来完成这样的迁移,因为事情可能太不一样了,所以我会手动一步一步地完成,并保持现有的ant构建与未来的新构建并行,直到整个迁移完成(从技术和人工角度来看)

首先,重构现有的Ant构建,使其与Maven约定保持一致:

  • 使事情模块化:如果您现有的构建是一个大的整体构建,从单个源代码树生成多个工件,请将其分解为单独的模块,每个工件一个
  • 更新目录结构:Maven提供了一个标准的和,虽然可以自定义此布局(即为另一个布局配置插件),但这并不是真正的建议,更多的是麻烦而不是好处。因此,我会移动现有的应用程序源、配置文件、测试等,以匹配Maven的布局(例如,应用程序源的
    src/main/java
    ,等等)
然后,开始创建Maven构建:

  • 为每个模块创建POM:创建POM,将外部库声明为Maven依赖项(可能将它们添加到企业存储库,在企业上下文中使用企业存储库是一种很好的做法),在模块之间添加依赖项
  • 完成多模块构建:添加父级POM和继承/聚合关系。测试创建的工件是否没有回归

如果您不想更改任何内容,可以在单独的VCS分支中执行此工作,直到工作完成并创建脚本来移动内容。准备好后,合并特定于Maven的内容并应用脚本。

您可以使用Maven antrun插件从Maven运行Ant脚本。您的pom.xml将如下所示:

<project>
  ...
  <build>
     <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-nodeps</artifactId>
                    <version>${ant-nodeps.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>init</id>
                    <phase>compile</phase>
                    <configuration>
                        <tasks>
                            <!-- Ant code goes here -->
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </build>
</project>
然后开始慢慢地把你的蚂蚁的碎片移动到纯Maven的东西中

${com.foo.bar:my-lib:jar}