我对使用Maven for Java/WebApp项目有一个很好的(ish)理解,但仅限于遵循默认目标/生命周期.
但是我现在有一个备份项目,它根本不是Java项目.我正在考虑使用Maven配置它以保持一定的一致性,但我不确定如何覆盖我的定制处理的主要Maven目标/阶段.
备份项目需要执行以下操作:'build' - 最初,备份输出将是一个mysql数据库转储文件和从现有WebApp导出的zip.但我希望它具有灵活性,因此调用ant文件来完成实际工作(创建转储,调用WebApp或将来做任何事情)似乎是明智的.然后可以将输出文件复制到目标目录中.
'install' - 将输出文件发布到本地存储库,最好提供datetimestamp版本号,而不是通常的1.0.0-SNAPSHOT版本.我想Maven可以处理一个文件集合,而不是一个罐子/战争,但对此不确定.
我的pom.xml声明包装为'pom'为'jar',而'war'在这里似乎不合适.
然后,我希望其他项目能够依赖此备份项目,以便在需要时可以获得最新的备份工件.
1)如何覆盖maven'compile'目标来调用ant构建文件?
2)如何覆盖maven'install'目标以发布目标目录中的所有文件,但作为单个人工制品?
任何帮助/指导表示赞赏.
你可以maven antrun plugin用来实现这个目标.
一个示例用法:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>bundle-virgo</id>
<phase>package</phase>
<configuration>
<tasks>
<ant antfile="<path to build.xml>" target="compile"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
您可以将phase参数更改为不同的maven阶段,以便在不同的阶段运行它等package, compile.
| 归档时间: |
|
| 查看次数: |
3742 次 |
| 最近记录: |