`

Maven+Ant ? or Ant + Maven?

阅读更多

项目现在用的是Maven来控制管理项目开发。 

现在问题: 一个项目, 想针对不同情况,做不同部署。 即,一个项目ProjectA, 所针对的业务逻辑环境有EnvirC和EnvirD。对于EnvirC,ProjectA打包时需要 jspC1, jspC2, jspC3, classC1,ClassC2;对于EnvirD,ProjectA打包时只需要jspC1, jspC2和classC1。 

我们知道用ant打war包时,可以通过ant脚本选择要包含的文件,也可指定不包含进来的文件夹。 

但使用maven打包时,还没见过怎么在pom.xml中选文件,怎么指定不包含文件。

这样问题:
    1, 用Maven能不能像用ant脚本那样地指定文件? 如果不能,可不可以通过ant插件来拉来这个功能?
            如果能,可不可以在一个pom文件中写两个像ant中target概念?能不能怎么在maven打包时指定“target”? Maven调用Ant脚本的最佳实践。 
                如果不能写两个“target”, 倒是可以把两个target分别写在两个pom文件中,这样就引出新问题, maven能不能在打包时怎么指定pom文件?


为什么不直接用ant来打包? 这样的麻烦是,不能像maven那样优雅地引用jar包。 这样,转向一个问题,ant能不能像maven那样优雅地借用maven的jar包?在ant脚本中使用maven管理的dependency

分享到:
评论
5 楼 netstu 2010-01-26  
afdsfdsfdsfds
4 楼 glacier3 2010-01-24  
ant+ivy+headlesseclipse build
2 楼 skydream 2010-01-22  
请使用ant + ivy

我就是在使用maven一年之后,决定转向ant + ivy的。ivy能够提供足够强大的依赖管理功能,而且感觉比maven还要强大,更加灵活。然后依靠ant完成其他功能。

相当不错的一个组合。
1 楼 rrrrutdk 2010-01-10  
引用
一个项目, 想针对不同情况,做不同部署。 即,一个项目ProjectA, 所针对的业务逻辑环境有EnvirC和EnvirD。对于EnvirC,ProjectA打包时需要 jspC1, jspC2, jspC3, classC1,ClassC2;对于EnvirD,ProjectA打包时只需要jspC1, jspC2和classC1


使用profile

在pom中加入

<profiles>
  <profile>
    <id>EnvirC</id>
    <build>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <!-- 在这里使用<includes></includes>, <excludes></excludes> 来选择要使用的源文件 -->
            <!-- 在你举的例子中,EnvirC基本上包括所有资源,所以这里不用填 -->
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <!-- 在这里使用<packagingIncludes></packagingIncludes>, <packagingExcludes></packagingExcludes> 来选择要使用的jsp或其他资源 -->
            <!-- 在你举的例子中,EnvirC基本上包括所有资源,所以这里不用填 -->
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
  <profile>
    <id>EnvirD</id>
    <build>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <!-- 在这里使用<includes></includes>, <excludes></excludes> 来选择要使用的源文件 -->
            <excludes>classC2</excludes>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <!-- 在这里使用<packagingIncludes></packagingIncludes>, <packagingExcludes></packagingExcludes> 来选择要使用的jsp或其他资源 -->
            <packagingExcludes>jspC3</packagingExcludes>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>


在运行时使用
mvn -p [profile_name] [goal(s)] [phase(s)]

示例
mvn -p EnvirC clean package


我没有试过上面的pom片段是否能做到你所说的,但使用profile一定可以达到你所说的要求。
maven-compiler-plugin,maven-war-plugin的configuration中的配置请见官方文档:
maven-compiler-plugin: http://maven.apache.org/plugins/maven-compiler-plugin/
maven-war-plugin: http://maven.apache.org/plugins/maven-war-plugin/

引用
用Maven能不能像用ant脚本那样地指定文件?maven能不能在打包时怎么指定pom文件?


mvn -f [pom location]

示例
mvn -f another_pom.xml clean package


引用
为什么不直接用ant来打包? 这样的麻烦是,不能像maven那样优雅地引用jar包。 这样,转向一个问题,ant能不能像maven那样优雅地借用maven的jar包?


请使用ant + ivy

           

相关推荐

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    该课程是北风品牌课程-《BF-TECH J2EE软件工程师就业课程》 第五阶段:项目实战一、开发基于SSH2+Maven+JeasyUI+MySQL技术的 【易买网电子商务交易平台】课程。 jQuery EasyUI简称jeasyui,也就叫easyui,是一组基于...

    maven-ant-tasks-2.1.3.zip

    《Maven Ant Tasks 2.1.3:构建与集成利器》 在软件开发领域,Maven 和 Ant 是两种广泛使用的构建工具。Maven 以其强大的依赖管理和项目生命周期管理功能著称,而 Ant 则以其灵活性和可定制性受到开发者青睐。然而...

    maven-ant-tasks.jar

    还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 maven-ant-tasks.jar

    jenkins+ant+jmeter自动化接口测试框架搭建

    选择Jenkins、Ant和JMeter结合的原因,除了Jenkins早期版本不包含Maven插件之外,还因为JMeter在案例中就是用Ant进行打包和构建测试,因此这组合有着天然的适应性和便利性。 搭建自动化接口测试框架的前提是安装并...

    Junit+ant+cobertura示例

    总的来说,"Junit+ant+cobertura示例"是一个展示如何使用JUnit进行单元测试,通过Ant进行自动化构建,并利用Cobertura进行代码覆盖率分析的实践案例。这样的组合可以帮助开发者更高效地管理和提升代码质量,确保软件...

    Jmeter+Jenkins+maven接口自动化集成.rar

    2. **将JMeter脚本转换为可执行的JAR**:JMeter支持导出测试计划为Ant或Maven格式,这样我们可以在Maven项目中直接引用这个脚本,使其成为构建的一部分。 3. **创建Maven项目**:在Maven项目中,添加JMeter和...

    Junit+Jacoco+ant集成使用

    JaCoCo是Java的代码覆盖率工具,它可以无缝地集成到各种构建工具(如Maven、Gradle或Ant)中,生成详细的代码覆盖率报告。JaCoCo通过字节码注入技术,动态地在运行时收集代码执行情况,从而提供精确的覆盖信息。 3....

    通向架构师的道路(第二十三天)maven与ant的奇妙整合.docx

    Maven 与 Ant 的奇妙整合 Maven 和 Ant 是两种常见的自动化构建工具,它们都有其独特的优点和缺点。在本文中,我们将探讨如何将 Maven 和 Ant 整合,以充分发挥两者的优势。 一、Maven 介绍 Maven 是一款基于项目...

    Maven 与 Ant 之比较

    标题“Maven 与 Ant 之比较”表明了本文将探讨两种在Java开发中广泛使用的构建工具——Maven和Ant。它们的主要功能是管理和自动化项目的构建过程,包括编译源代码、运行测试、打包应用以及部署。通过对两者进行对比...

    Maven2.Ant.Junit合集

    《Maven2.Ant.Junit合集》是一个包含多种IT工具和框架的资源包,主要聚焦于Java开发中的构建管理和单元测试。这个合集提供了PDF和CHM两种格式的文档,便于不同用户根据个人喜好进行阅读。以下是这些工具及其重要知识...

    Docker构建Maven+Tomcat基础镜像的实现

    主要介绍了Docker构建Maven+Tomcat基础镜像的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    maven-ant-tasks-2.1.3-src

    The Mavent Ant Tasks allow several of Maven's artifact handling features to be used from within an Ant build. These include: Dependency management - including transitive dependencies, scope ...

    Jenkins+Maven+svn+Tomcat入门文档

    ### Jenkins+Maven+svn+Tomcat入门文档 #### Maven **基本介绍** Maven是一种基于项目对象模型(Project Object Model, POM)的软件项目管理工具,它可以帮助开发者通过少量的描述信息来管理和构建项目,包括编译...

    CruiseControl+SVN+Maven+Tomcat持续集成环境搭建

    搭建CruiseControl+SVN+Maven+Tomcat持续集成环境,主要是为了实现代码的自动构建、测试和部署,从而提高开发效率,减少错误。整个过程涉及到多个工具的安装、配置和集成,确保每个环节都能正确工作,并通过权限管理...

    maven-ant-tasks:Apache Maven ant任务的镜像

    Maven-ant-tasks是Apache Maven项目的一部分,它允许将Maven的功能集成到Ant构建脚本中。 Ant是Apache软件基金会开发的一个Java项目构建工具,它是基于XML的,用于定义任务和依赖关系。然而,Ant本身并不具备Maven...

    Fmpp+Ant生成类文件

    本文将深入探讨“Fmpp+Ant生成类文件”这一主题,结合提供的标签“源码”和“工具”,我们将理解如何利用这两者进行高效地编译和构建。 Fmpp(FreeMarker Macro Processor)是一款强大的文本模板语言,它主要用于...

    maven下通用的ant配置文件

    maven下通用的ant配置文件,只要0积分。只需修改11行末尾的target/自己的工程名即可。

    maven ant thrift0.9.0

    标题 "maven ant thrift0.9.0" 涉及到的是三个关键的软件开发工具:Thrift 0.9.0、Apache Ant 和 Apache Maven。这些工具在Java和其他编程语言的开发环境中广泛使用,特别是在构建和部署分布式系统时。 Thrift ...

    findbugs + ant

    可以通过Maven仓库或官方网站下载对应版本的JAR包,然后将其添加到项目的类路径中。 2. 配置Ant脚本: 在Ant的build.xml文件中,需要创建一个新的target来执行FindBugs。这通常包括设置FindBugs的配置选项,指定要...

    JMETER-3.1+ant

    5. **持续集成**:Ant常与其他工具如Jenkins、Maven一起使用,实现自动化构建和测试,包括JMeter性能测试的集成。 在实际使用中,结合这两个工具,开发者可以创建自动化测试脚本,模拟大量用户并发请求,评估系统在...

Global site tag (gtag.js) - Google Analytics