ivy尝试

ivy是apche的ant的子项目,主要是用来解决ant的jar的版本管理。

     项目的网址是http://ant.apache.org/ivy/ 下载网址http://ant.apache.org/ivy/download.cgi

     包中有个ivy-2.1.0.jar,放在ant的安装目录的lib ,比如我的ubuntu的/usr/share/ant/lib

     这样就可以使用在ant的中使用一些ivy内置的命令。

     比如一个项目名phoenix,新建一个ivy.xml,

 

Xml代码   收藏代码
  1. <ivy-module version="2.0">  
  2.     <info organisation="com.phoenix" module="phoenix" revision="1.0.0"/>  
  3.      <configurations>  
  4.         <conf name="default"/>  
  5.         <conf name="test" visibility="private"/>  
  6.   
  7.      </configurations>  
  8.   
  9.     <dependencies>  
  10.         <dependency org="com.phoenix" name="phoenix-util" rev="${phoenix-public.version}" conf="default"/>  
  11.         <dependency org="com.phoenix" name="phoenix-core" rev="${phoenix-public.version}" conf="default"/>  
  12.         <dependency org="com.phoenix" name="phoenix-area" rev="${phoenix-public.version}" conf="default"/>  
  13.         <dependency org="com..phoenix" name="phoenix-kaka" rev="${phoenix-yunying.version}" conf="default"/>  
  14.         <dependency org="com..phoenix" name="phoenix-tag" rev="${phoenix.version}" conf="default"/>  
  15.         <dependency org="org.apache.struts" name="struts2-core" rev="2.0.14" conf="default"/>  
  16.          <dependency org="com.opensymphony" name="xwork" rev="2.0.7" conf="default"/>  
  17.         <dependency org="net.sourceforge" name="pinyin4j" rev="2.5.0" conf="default"/>  
  18.         <dependency org="org.apache.poi" name="poi" rev="3.2-FINAL" conf="default"/>  
  19.         <dependency org="dom4j" name="dom4j" rev="1.6.1" conf="default"/>  
  20.         <dependency org="org.springframework" name="spring-beans" rev="2.5.6" conf="default"/>  
  21.         <dependency org="org.springframework" name="spring" rev="2.5.6" conf="default"/>  
  22.         <dependency org="javax.servlet" name="servlet-api" rev="2.4" conf="default"/>  
  23.     </dependencies>  
  24. </ivy-module>  

    上面有该个工程需要的jar的版本,公司内部的jar版本用一个变量定义,便于统一升级

     还有的ivysettings.xml是的主要配置的文件

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <ivysettings>  
  3.     <include url="./ivysettings-public.xml"/>  
  4.     <include url="./ivyconf-main-chain.xml"/>  
  5.     <include url="./ivyconf-local.xml"/>  
  6.     <ivy:configure  url="./ivysettings.xml" >  
  7.          <credentials host="10.5.58.91" realm="Sonatype Nexus Repository Manager" username="admin" passwd="admin123" />  
  8.         </ivy:configure>  
  9.     <settings defaultResolver="main" checkUpToDate="true" defaultConflictManager="latest-revision"/>  
  10. </ivysettings>  

      上面的有我自己的 nexus的私服,可以上传ivy的打的jar包

      ivysettings-public.xml(公共的服务器)下面定义两个仓库,用来区分是自己的release的,还是外部提供的jar

Xml代码   收藏代码
  1. <ivysettings>  
  2.     <resolvers>  
  3.         <ibiblio name="release" m2compatible="true"  usepoms = " false "  root="http://10.5.58.91/nexus/content/repositories/Koubei-release/"/>  
  4.         <ibiblio name="public" m2compatible="true"  usepoms = " false "  root="http://10.5.58.91/nexus/content/groups/public/"/>  
  5.     </resolvers>  
  6. </ivysettings>  

     ivyconf-local.xml

Xml代码   收藏代码
  1. <ivysettings>  
  2.     <property name="ivy.local.default.root"             value="${ivy.default.ivy.user.dir}/local" override="false"/>  
  3.     <property name="ivy.local.default.ivy.pattern"      value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]" override="false"/>  
  4.     <property name="ivy.local.default.artifact.pattern" value="[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]" override="false"/>  
  5.     <resolvers>  
  6.         <filesystem name="local">  
  7.             <ivy pattern="${ivy.local.default.root}/${ivy.local.default.ivy.pattern}" />  
  8.             <artifact pattern="${ivy.local.default.root}/${ivy.local.default.artifact.pattern}" />  
  9.         </filesystem>  
  10.     </resolvers>  
  11. </ivysettings>  

    ivyconf-main-chain.xml

 

Xml代码   收藏代码
  1. <ivysettings>  
  2.     <resolvers>  
  3.         <chain name="main" dual="true">  
  4.             <resolver ref="release"/>  
  5.             <resolver ref="public"/>  
  6.         </chain>  
  7.     </resolvers>  
  8. </ivysettings>  

    以上的ivy基本配置基本完成

   现在就是在ant 中写相关的build.xml 的任务

    ant resolve 下载需要的jar

    ant publish-local 发布到自己本机的仓库

    ant publish 把相关的包发布到自己的私服

Xml代码   收藏代码
  1. <!-- =================================  
  2.                   target: resolve  
  3.                  ================================= -->  
  4.     <target name="resolve" description="--> retreive dependencies with ivy">  
  5.         <ivy:retrieve />  
  6.     </target>  
  7.   
  8.     <!-- =================================  
  9.                   target: report  
  10.                 ================================= -->  
  11.     <target name="report" depends="resolve" description="--> generates a report of dependencies">  
  12.         <ivy:report todir"build" />  
  13.     </target>  
  14.     <!-- =================================  
  15.                   target: clean-cache  
  16.                 ================================= -->  
  17.     <target name="clean-cache" description="--> clean the ivy cache">  
  18.         <ivy:cleancache />  
  19.     </target>  
  20.     <target name="publish-local" description="--> Publish Local" depends="build.phoenix">  
  21.         <ivy:retrieve />  
  22.         <ivy:publish resolver="local" pubrevision="${release.version}" status="release" update="true" overwrite="true">  
  23.             <artifacts pattern="dist/[artifact].[ext]" />  
  24.         </ivy:publish>  
  25.     </target>  
  26.     <target name="publish" description="--> Publish nexus" depends="publish-local">  
  27.         <ivy:retrieve />  
  28.         <ivy:publish resolver="release" pubrevision="${release.version}" status="release" update="true" overwrite="true"  forcedeliver="true">  
  29.             <artifacts pattern="dist/[artifact].[ext]" />  
  30.         </ivy:publish>  
  31.     </target>  

==================================


tanklove2 写道
根据你那个nexus设置后,我jar包上传到release目录下出现权限不够问题, refused by the server: Unauthorized。你的可以么


你可以在ivysettings.xml里设置ivy:configure。
如下:
< ivy:configure  file ="path/to/my/ivysettings.xml" >
   < credentials  host ="myhost.com"  realm ="My Realm"  username ="myuser"  passwd ="mypasswd"   />
   < credentials  host ="yourhost.com"  realm ="Your Realm"  username ="myuser"  passwd ="myotherpasswd"   />
</ ivy:configure >

你可能感兴趣的:(ivy尝试)