Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ant资源生成目标集成到Maven构建中_Maven_Ant_Maven Antrun Plugin - Fatal编程技术网

将ant资源生成目标集成到Maven构建中

将ant资源生成目标集成到Maven构建中,maven,ant,maven-antrun-plugin,Maven,Ant,Maven Antrun Plugin,我目前正在从事一个相当大的项目,该项目已经从Ant迁移到Maven。实际构建过程没有问题(它可以很好地编译和打包源代码) 问题是,我还有很多为项目生成额外资源的目标(编译lesscs、生成和上传文档、生成用于自定义标记和函数的tld文件等)。我不知道该如何处理这些任务。让我们以构建CSS&JS的目标为例(其他的都差不多,但没有联系)。它看起来像这样(简化): 我使用的依赖项不再在我们的SVN存储库中(因为它们由Maven管理),因此我将libraries变量切换为指向Maven repo: &l

我目前正在从事一个相当大的项目,该项目已经从Ant迁移到Maven。实际构建过程没有问题(它可以很好地编译和打包源代码)

问题是,我还有很多为项目生成额外资源的目标(编译lesscs、生成和上传文档、生成用于自定义标记和函数的
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>