`

ant+ivy管理项目

 
阅读更多

一:ivy管理jar包

   1)设置ivysetting.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<ivysettings>
 <ivy:configure>
  <credentials host=" service ip" realm="Sonatype Nexus Repository Manager" username="deployment" passwd="deployment123" />
 </ivy:configure>
 <settings defaultResolver="defaultChain" defaultConflictManager="latest-revision" />
 <caches defaultCacheDir="d:/.ivy2" />
 <property name="nexus-public" value="http:// service ip:7002/nexus-webapp-1.8.0.1/content/groups/public/" />
 <property name="nexus-releases" value="http:// service ip:7002/nexus-webapp-1.8.0.1/content/repositories/releases/" />
 <property name="nexus-snapshots" value="http:// service ip:7002/nexus-webapp-1.8.0.1/content/repositories/snapshots/" />
 <resolvers>
  <chain name="defaultChain" checkmodified="true" changingPattern=".*SNAPSHOT">
   <ibiblio name="public" m2compatible="true" usepoms="true" root="${nexus-public}"
    pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
   <ibiblio name="releases" m2compatible="true" usepoms="true" root="${nexus-releases}"
    pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
   <ibiblio name="snapshots" m2compatible="true" usepoms="true" root="${nexus-snapshots}"
    pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
  </chain>
 </resolvers>
</ivysettings>

 

2) 设置ivy.xml

<ivy-module version="2.0" xmlns:m="http://ant.apache.org/ivy/maven">
 <info organisation="com.XXX.XXX" module="projectName" />
 <configurations>
  <conf name="default" visibility="public" extends="runtime,master" />
  <conf name="master" visibility="public" />
  <conf name="compile" visibility="public" />
  <conf name="provided" visibility="public" />
  <conf name="runtime" visibility="public" extends="compile" />
  <conf name="test" visibility="private" extends="runtime" />
 </configurations>

 <dependencies defaultconfmapping="compile->compile(*),master(*);runtime->master(*),compile(*),runtime(*)">
  <!-- log4j -->
  <dependency org="log4j" name="log4j" rev="1.2.17" conf="compile;runtime" />

  <!-- httpclient -->
  <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.2.5" conf="compile;runtime" />
  <dependency org="org.apache.httpcomponents" name="httpmime" rev="4.0.1" conf="compile;runtime" />
  <dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.2" conf="compile;runtime" />
  <dependency org="org.apache.httpcomponents" name="httpclient-cache" rev="4.1.2" conf="compile;runtime" />

  <!-- others -->
  <dependency org="com.google.code.gson" name="gson" rev="2.2.4" conf="compile;runtime" />
  <dependency org="net.sf.ezmorph" name="ezmorph" rev="1.0.6" conf="compile;runtime" />
  <dependency org="net.sf.json-lib" name="json-lib" rev="2.4" m:classifier="jdk15" conf="compile;runtime" />
  <dependency org="org.aspectj" name="aspectjweaver" rev="1.6.11" conf="compile;runtime" />
  <dependency org="org.apache.poi" name="poi" rev="3.9" conf="compile;runtime" />
  <dependency org="net.sourceforge.jexcelapi" name="jxl" rev="2.6.3" conf="compile;runtime" />
  <dependency org="net.sourceforge.jexcelapi" name="jxl" rev="2.6.3" conf="compile;runtime" />
  <dependency org="javax.servlet" name="servlet-api" rev="2.5" conf="compile;runtime" />
  <dependency org="org.apache.tomcat" name="jsp-api" rev="6.0.37" conf="provided->compile(*),master(*)" />
  <dependency org="jdom" name="jdom" rev="1.0" conf="compile;runtime" />
  <dependency org="com.oracle" name="ojdbc14" rev="10.2.0.4.0" conf="compile;runtime" />
  <dependency org="commons-beanutils" name="commons-beanutils-core" rev="1.8.0" conf="compile;runtime" />
  <dependency org="commons-net" name="commons-net" rev="2.0" conf="compile;runtime" />

 

  <!-- Axiom 对象模型 -->
  <dependency org="org.apache.ws.commons.axiom" name="axiom-api" rev="1.2.8" conf="compile;runtime" />
  <dependency org="org.apache.ws.commons.axiom" name="axiom-impl" rev="1.2.8" conf="compile;runtime" />

  <!-- axis2 -->
  <dependency org="org.apache.axis2" name="axis2-adb" rev="1.5" conf="compile;runtime" />
  <dependency org="org.apache.axis2" name="axis2-java2wsdl" rev="1.5" conf="compile;runtime" />

  <!-- spring -->
  <dependency org="org.springframework" name="spring-asm" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-aspects" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-aop" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-core" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-beans" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-context" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-context-support" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-jdbc" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-expression" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-orm" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-oxm" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-web" rev="3.1.4.RELEASE" conf="compile;runtime" />


  <dependency org="org.springframework" name="spring-instrument" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-jms" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-test" rev="3.1.4.RELEASE" conf="compile;runtime" />
  <dependency org="org.springframework" name="spring-tx" rev="3.1.4.RELEASE" conf="compile;runtime" />

 

  <!-- hibernate -->
  <dependency org="org.hibernate" name="hibernate-core" rev="3.6.4.Final" conf="compile;runtime">
   <exclude module="xml-apis" />
  </dependency>
  <dependency org="org.hibernate" name="hibernate-commons-annotations" rev="3.2.0.ga" conf="compile;runtime" />
  <dependency org="org.hibernate" name="hibernate-entitymanager" rev="3.6.4.Final" conf="compile;runtime" />
  <dependency org="org.hibernate" name="hibernate-ehcache" rev="3.6.4.Final" conf="compile;runtime" />

  <!--quartz  -->
  <dependency org="org.quartz-scheduler" name="quartz" rev="2.2.0" conf="compile;runtime" />

 </dependencies>
</ivy-module>

 

3)具体的ant插件安装,详情见百度,主要一点是要把ivy的两个jar包copy到ant的lib中,在eclipse中配置ant路径 。具体的jar 包可在mvn 中查询 http://mvnrepository.com/search.html

 

4)编写build.xml ant编译文件

<?xml version="1.0" encoding="UTF-8"?>
<project name="ebg-service" default="generwar" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">

 <property name="src.dir" value="${basedir}" />
 <property name="webRoot" value="${basedir}/webroot" />
 <property name="build.lib" value="${webRoot}/WEB-INF/lib" />
 <property name="build.dir" value="${basedir}/deploy" />
 <property name="build.classes" value="${build.dir}/classes" />

 <!--加载ivy文件-->
 <ivy:settings file="ivysettings.xml" />

 <target name="resolve" description="--> parse ivy.xml">
  <ivy:resolve file="ivy.xml" conf="*" />
  <ivy:cachepath pathid="ivy.libs.compile" type="jar,bundle" conf="compile,provided" />
  <ivy:cachepath pathid="ivy.libs.test" type="jar,bundle" conf="test,provided" />
  <ivy:cachepath pathid="ivy.libs.runtime" type="jar,bundle" conf="runtime" />
 </target>

 <target name="ivy-report" depends="resolve" description="--> resolve and retrieve dependencies with ivy">
  <ivy:report />
 </target>

 <!--1、删除编译target目录-->
 <target name="clean" description="delete directory">
  <echo message="clean deploy directory" />
  <delete dir="${build.dir}" />
 </target>

 <!--2、创建编译target目录-->
 <target name="init" description="create target directory" depends="clean">
  <echo message="create deploy directory" />
  <mkdir dir="${build.dir}" />
  <mkdir dir="${build.classes}" />
 </target>

 <!--3、编译java源文件-->
 <target name="compile" description="compile source files" depends="init,resolve">
  <echo message="compile source files" />

  <javac target="1.5" encoding="utf-8" debug="true" srcdir="${src.dir}" destdir="${build.classes}">
   <compilerarg value="-Xlint:unchecked" />
   <compilerarg value="-Xlint:deprecation" />
   <classpath>
    <path refid="ivy.libs.compile" />
   </classpath>
  </javac>

 </target>

 <!--4、 复制资源文件 -->
 <target name="copyRes" depends="compile" description="copy resources to classes path">
  <echo message="copy resources to classes path" />
  <copy todir="${build.classes}">
   <fileset dir="src/resources">
    <exclude name="build/" />
    <!--排除build 文件夹-->
   </fileset>
  </copy>
 </target>

 <!-- 5.复制生产环境资源文件覆盖掉原开发资源文件-->
 <target name="copyResProd" depends="copyRes" description="copy resources to classes path">
  <echo message="copy resources to classes path" />
  <copy todir="${build.classes}" overwrite="true">
   <fileset dir="src/resources/build" />
  </copy>
 </target>

 <!--6、打成WAR包-->
 <target name="generwar" depends="copyResProd">
  <echo message="generate war" />
  <war destfile="${build.dir}/${ant.project.name}.war" webxml="${webRoot}/WEB-INF/web.xml">
   <fileset dir="${webRoot}">
    <include name="**/*.jsp" />
    <include name="**/*weblogic.xml" />
   </fileset>

   <classes dir="${build.classes}" />
   <mappedresources>
    <restrict>
     <path refid="ivy.libs.runtime" />
     <type type="file" />
    </restrict>
    <chainedmapper>
     <flattenmapper />
     <globmapper from="*" to="WEB-INF/lib/*" />
    </chainedmapper>
   </mappedresources>
  </war>

  <echo message="clean deploy directory" />
  <delete dir="${build.classes}" />
 </target>

 

</project>

 

ivy的插件自行到网上获取

 

 

0
4
分享到:
评论
4 楼 钱少少 2013-11-08  
programming 写道
和maven相比没优势

ivy只是maven中jar包管理的一部分!
3 楼 programming 2013-09-05  
和maven相比没优势
2 楼 钱少少 2013-09-04  
kingsfighter 写道
和maven相比,有什么优势?

   ivy是一个比较轻量级的版本管理,和ant组合起来就是 maven的一个替代方案,而且上手快
1 楼 kingsfighter 2013-09-04  
和maven相比,有什么优势?

相关推荐

    ant+ivy+nexus的使用

    "ant+ivy+nexus"的组合就是一种常用的Java项目构建和依赖管理解决方案。以下是对这个主题的详细解释: 1. Ant: Ant是Apache软件基金会的一个项目,是一个基于Java的构建工具。它使用XML来描述构建过程和依赖关系,...

    ant+ivy代码管理包

    Ant是一款强大的Java项目构建工具,而Ivy则是Ant的一个扩展,专门用于管理项目依赖。本篇文章将深入探讨这两者如何协同工作,为代码打包管理提供有力支持,特别是在WebLogic服务器环境下的应用。 Apache Ant,作为...

    any+ivy的使用

    - **依赖管理**:Ivy 能够帮助我们管理项目中所需的外部库,包括 JAR 文件和其他形式的资源。它通过定义模块(Module)和依赖关系(Dependencies)来组织这些库。 - **模块(Module)**:在 Ivy 中,一个模块通常...

    ant.rar +使用文档

    8. **插件与第三方任务**:除了内置任务,Ant还可以通过`&lt;taskdef&gt;`引入第三方插件,比如Maven Ant Tasks,用于与Maven集成,或者Ivy用于依赖管理。 9. **测试与报告**:Ant可以配合JUnit进行单元测试,并生成测试...

    ant 开发及整合 源码 实例

    7. **整合其他工具**:Ant可以与其他Java开发工具如Maven、Ivy集成,用于管理和获取项目依赖。了解如何在Ant构建中引入这些工具,提升项目的可维护性。 8. **源码分析**:通过提供的源码实例,你可以看到Ant如何在...

    工程中jar包管理工具---ivy

    Ivy是一个由Apache Ant项目维护的依赖管理工具,它允许开发者以声明式的方式管理项目所依赖的外部库,从而实现对JAR包的高效管理。这个工具的引入,显著提高了项目的可维护性和构建效率,避免了由于版本冲突或重复...

    ivy-2.4.0.jar

    Ivy是Ant的一个扩展,它帮助开发者管理项目所依赖的外部组件,如JAR文件和其他资源。 在软件开发中,依赖管理是一个关键环节,尤其是对于大型的、模块化的项目。Apache Ivy能够自动化这个过程,通过读取定义了项目...

    apache-ant-1.8.0_with_apache-ivy-2.1.0_and_ivysvnresolver-2.1.0

    Ivysvnresolver可能是为了解决从SVN仓库直接获取和管理项目依赖的需求。 在使用这个压缩包时,首先需要将其解压缩到你选择的任意路径,例如我们设定一个环境变量$ANT_IN来表示这个路径。然后,你需要设置系统的ANT_...

    SAMPLE_ANT_IVY_ARTIFACTORY

    标题“SAMPLE_ANT_IVY_ARTIFACTORY”暗示了这是一个关于使用Apache Ant和Ivy管理Java项目的示例。Ant是Java领域广泛使用的构建自动化工具,而Ivy是它的一个依赖管理库,专门处理项目依赖关系。这个压缩包很可能是...

    eclipse安装配置Ivy、Ivyde插件--亲测成功,内附说明、截图、安装包

    总的来说,IvyDE插件使Eclipse用户能够更加高效地管理项目依赖,避免了手动下载和添加库的繁琐工作,提高了开发效率。通过正确的安装和配置,IvyDE可以成为开发团队的有力工具,特别是在大型复杂项目中,它能帮助...

    Ant参考教程,Ant使用指南,Ant全攻略

    "Ant全攻略.doc"可能涵盖了Ant与第三方工具的集成,比如Maven、Ivy等依赖管理工具,以及Eclipse、IntelliJ IDEA等IDE的集成。此外,它还可能讨论如何处理复杂的构建场景,如多模块项目、远程构建、持续集成等。 ...

    ant-ivy:Apache Ant Ivy的镜像

    Apache Ivy是用于管理(记录,跟踪,解决和报告)项目依赖项的工具。 它具有以下特点: 灵活性和可配置性Apache Ivy本质上与过程无关,并且不依赖于任何方法或结构。 相反,它提供了必要的灵活性和可配置性,以适应...

    用Ant实现Java项目的自动构建和部署

    Ant允许扩展自定义的任务,因此有众多的第三方插件可用,如Ivy用于依赖管理和Gradle用于更高级的构建需求。 8. **实战应用** 博文链接(已给出但无法直接访问)可能提供了如何在实际项目中设置和使用Ant的教程,...

    IVY学习使用文档

    Ivy 是一种基于 Apache Ant 的依赖管理工具,用于管理项目中的依赖项和库文件。下面是对 Ivy 学习使用文档的详细解释和知识点总结。 Ivy 基础知识 Ivy 是一个开源的依赖管理工具,基于 Apache Ant,用于管理项目中...

    演示ANT工具的Eclipse项目AntAdvanceDemo

    - 在"AntAdvanceDemo"项目中,我们可以看到如何使用这些任务来构建和管理项目资源。 5. **ANT属性(Property)** - 属性是ANT中用于存储值的变量,如`src.dir`表示源代码目录,`build.dir`表示构建输出目录。 - ...

    liferay开发需下载的.ivy

    1. **依赖管理**:Ivy可以管理项目的所有外部依赖,包括JAR文件和其他资源。通过定义`.ivy`文件,开发者可以声明项目所需的库及其版本,Ivy会自动从远程仓库(如Maven Central或公司内部仓库)下载这些依赖。 2. **...

    ant编译依赖包

    总的来说,使用Ant编译Java项目并创建jar包,你需要编写一个包含`&lt;javac&gt;`和`&lt;jar&gt;`任务的构建文件,同时可以利用Ivy管理依赖,Emma生成测试覆盖率报告,以及Ant Contrib中的额外任务来增强Ant的功能。通过这种方式...

    apache-ivy

    Ivy的核心功能是管理项目的依赖关系,确保在构建过程中正确地引入和解析所需的库文件。 标题中的"apache-ivy"指的是Apache组织下的Ivy项目,这是一个专门处理项目依赖的子项目。"bin zip 2.2"表示这是Ivy的二进制...

    IVY 压缩包

    【IVY 压缩包】是一个用于项目依赖管理的工具,它在软件开发领域扮演着重要的角色。Ivy这个名字来源于“ivy”这个词在植物界中的攀爬特性,象征着项目依赖之间的相互关联和依赖。这个压缩包包含了Apache Ivy的核心...

Global site tag (gtag.js) - Google Analytics