将ant资源生成目标集成到Maven构建中
我目前正在从事一个相当大的项目,该项目已经从Ant迁移到Maven。实际构建过程没有问题(它可以很好地编译和打包源代码) 问题是,我还有很多为项目生成额外资源的目标(编译lesscs、生成和上传文档、生成用于自定义标记和函数的将ant资源生成目标集成到Maven构建中,maven,ant,maven-antrun-plugin,Maven,Ant,Maven Antrun Plugin,我目前正在从事一个相当大的项目,该项目已经从Ant迁移到Maven。实际构建过程没有问题(它可以很好地编译和打包源代码) 问题是,我还有很多为项目生成额外资源的目标(编译lesscs、生成和上传文档、生成用于自定义标记和函数的tld文件等)。我不知道该如何处理这些任务。让我们以构建CSS&JS的目标为例(其他的都差不多,但没有联系)。它看起来像这样(简化): 我使用的依赖项不再在我们的SVN存储库中(因为它们由Maven管理),因此我将libraries变量切换为指向Maven repo: &l
tld
文件等)。我不知道该如何处理这些任务。让我们以构建CSS&JS的目标为例(其他的都差不多,但没有联系)。它看起来像这样(简化):
我使用的依赖项不再在我们的SVN存储库中(因为它们由Maven管理),因此我将libraries变量切换为指向Maven repo:
<property name="lib.dir" location="${env.HOMEPATH}/.m2/repository" />
这不好,因为该路径可能仅在我的计算机上有效。我不知道从Maven存储库中引用库的其他方法,我需要它们来运行ant目标
- 我的方法行吗,还是有更好的方法
- 我如何克服图书馆的问题
- 打包项目时需要一些资源,但有些资源不需要。是否存在超出编译/打包范围的生命周期阶段?我发现
生命周期适合我的需要李>站点
- 理想情况下,我应该完全放弃ant构建文件,但我不确定让脚本作为maven插件运行是否值得(我目前不知道如何做到这一点)。你觉得这个怎么样
我是Maven的新手,所以任何建议都非常感谢。一般来说,嵌入antrun调用并不理想,但是如果你还没有找到合适的插件来完成你需要的工作,那么我就不会担心了。如果处理相当简单,那么实际上很容易自己将其嵌入Maven插件中,请参阅以获取入门帮助 如果您使用antrun,并且依赖项JAR已经安装到Maven存储库中,那么您可以通过将这些JAR添加为插件配置的依赖项来配置antrun插件,使其在执行时使用这些JAR。这意味着依赖项将被解析并可供使用,但对项目不可见(有助于避免意外包含)。要以便携方式访问它们,您可以使用:
<property name="lib.dir" location="${settings.localRepository}" />
一般来说,嵌入antrun调用并不理想,但如果您还没有找到合适的插件来完成所需的工作,那么我就不会担心了。如果处理相当简单,那么实际上很容易自己将其嵌入Maven插件中,请参阅以获取入门帮助 如果您使用antrun,并且依赖项JAR已经安装到Maven存储库中,那么您可以通过将这些JAR添加为插件配置的依赖项来配置antrun插件,使其在执行时使用这些JAR。这意味着依赖项将被解析并可供使用,但对项目不可见(有助于避免意外包含)。要以便携方式访问它们,您可以使用:
<property name="lib.dir" location="${settings.localRepository}" />
<property name="lib.dir" location="${settings.localRepository}" />
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>build-css</id>
<phase>generate-resource</phase>
<configuration>
<target>
...
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
<execution>
<id>build-js</id>
<phase>generate-resource</phase>
<configuration>
<target>
...
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>some.group.id</groupId>
<artifactId>artifactId</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>another.group.id</groupId>
<artifactId>anotherId</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>