`
shihuan830619
  • 浏览: 582987 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ant+ivy+nexus的使用

阅读更多
本文的大前提是先要搭建好nexus本地服务器。

工程目录结构


附件里是示例代码。

ivysettings_nexus.rar是ivysettings.xml连接nexus服务的文件代码。

关于配置截图请参考笔者的新浪博客(http://blog.sina.com.cn/s/blog_4f925fc30102v6k8.html)

ivysettings.xml文件代码如下:
<ivysettings> 
  <ivy:configure>
	<credentials host="127.0.0.1" realm="Sonatype Nexus Repository Manager" username="admin" passwd="admin123"/>
  </ivy:configure>
  <settings defaultResolver="defaultChain" defaultConflictManager="latest-revision" />
  <caches defaultCacheDir="F:/antlvy/javapro/ivy" />
  <property name="nexus-public" value="http://127.0.0.1:8081/nexus/content/groups/public"/> 
  <property name="nexus-releases" value="http://127.0.0.1:8081/nexus/content/repositories/releases"/> 
  <property name="nexus-snapshots" value="http://127.0.0.1:8081/nexus/content/repositories/snapshots"/>
  <property name="nexus-thirdparty" value="http://127.0.0.1:8081/nexus/content/repositories/thirdparty"/>
  <resolvers>
	<chain name="defaultChain" checkmodified="true" changingPattern=".*SNAPSHOT">
		<ibiblio name="nexus-public" m2compatible="true" usepoms="true" root="${nexus-public}" pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" /> 
		<ibiblio name="nexus-releases" m2compatible="true" usepoms="true" root="${nexus-releases}" pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" /> 
		<ibiblio name="nexus-snapshots" m2compatible="true" usepoms="true" root="${nexus-snapshots}" pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
		<ibiblio name="nexus-thirdparty" m2compatible="true" usepoms="true" root="${nexus-thirdparty}" pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]" />
	</chain>
  </resolvers>
</ivysettings>


ivy.xml文件代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.    
-->
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
    <info
        organisation="com.shihuan"
        module="shihuanjava"
        status="integration">
	</info>
	
	<dependencies>
		<dependency org="log4j" name="log4j" rev="1.2.17" conf="default"></dependency>
		<dependency org="commons-logging" name="commons-logging" rev="1.2" conf="default" />
		<dependency org="org.slf4j" name="slf4j-api" rev="1.6.4" conf="default" />
		<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.6.4" conf="default" />
		<dependency org="commons-lang" name="commons-lang" rev="2.6" conf="default" />
		<dependency org="com.cloudhopper.proxool" name="proxool" rev="0.9.1" conf="default" />
		<dependency org="mysql" name="mysql-connector-java" rev="5.1.34" conf="default" />
	</dependencies>
	
</ivy-module>


build.xml文件代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:ivy="antlib:org.apache.ivy.ant" basedir="." name="TestJavaCl" default="genericjar">

	<property name="publish.version" value="0.1" />   
	<property name="ivy.report.todir" value="build" />

    <target name="resolve">
        <ivy:configure file="ivysettings.xml" />
        <ivy:resolve file="ivy.xml" conf="default" />   
		<ivy:retrieve pattern="lib/[conf]/[artifact]-[revision].[ext]" />
		<ivy:report />
    </target>

	<path id="lib-classpath">
		<fileset dir="${basedir}/lib/default">
			<include name="**/*.jar"/>   
            <exclude name="**/*.bak"/>
		</fileset>
	</path>

	<target name="clean">
		<delete dir="${basedir}/bin" />
		<delete dir="${basedir}/dist" />
	</target>

	<target name="init" description="设置初始化打war包需要的路径变量">    
        <property name="name" value="TestJavaCl"/>    
        <property name="src" value="${basedir}/src"/>    
    	<property name="resources" value="${basedir}/resources"/>    
        <property name="packages" value="com.*"/>    
                
        <property name="build.class" value="${basedir}/bin"/>   
        <property name="build.javadocs" value="${basedir}/dist/doc"/>    
        <property name="jar.dest" value="${basedir}/dist/jar"/>
		<property name="mainclass" value="com.shihuan.test.TestUrlClassLoader"/>

		<property name="build.encoding" value="utf-8"/>
		<property name="year" value="2014"/>
		<property name="version" value="1.0.0"/>
          
        <echo message="----------- ${name} ${version} [${year}] ------------" />  
        <echo message="----------- ${src} ------------" />  
        <echo message="----------- ${resources} ------------" />  
        <echo message="----------- ${build.class} ------------" />
        <echo message="----------- ${build.javadocs} ------------" />  
        <echo message="----------- ${jar.dest} ------------" />  
        
    	<patternset id="ignored.files">
    		<exclude name="**/.svn/**" />
    	</patternset>
          
        <filter token="year" value="${year}" />  
        <filter token="version" value="${version}" />  
        <filter token="date" value="${TODAY}" />  
        <filter token="log" value="true" />  
        <filter token="verbose" value="true" />  
    </target>    
        
    <target name="prepare" depends="clean,init" description="创建打包需要的路径,拷贝源文件到打包路径下">
		<tstamp/>
        <mkdir dir="${build.class}"/>    
        <mkdir dir="${jar.dest}"/>
    </target>

	<target name="compile" depends="prepare,resolve">
        <javac encoding="${build.encoding}" srcdir="${src}" destdir="${build.class}" includeantruntime="false" source="1.6" debug="yes" verbose="yes" failonerror="true" optimize="false">
			<compilerarg line="-encoding UTF-8"/>   
			<classpath refid="lib-classpath" />
        </javac>    
        <copy todir="${build.class}">    
            <fileset dir="${resources}">    
                <include name="**/*.properties"/>
            	<include name="**/*.xml"/>
                <exclude name="**/*.bak"/>  
            </fileset>    
        </copy>
    </target>

	<target name="antjar" depends="compile">
        <!--Create a property containing all .jar files,  
        prefix lib/, and seperated with a space-->  
        <pathconvert property="mf.classpath" pathsep=" ">  
            <mapper>  
                <chainedmapper>  
                    <!-- jar包文件只留文件名,去掉目录信息 -->  
                    <flattenmapper/>  
                    <!-- add lib/ prefix -->  
                    <globmapper from="*" to="lib/default/*"/>  
                </chainedmapper>  
            </mapper> 
			<path refid="lib-classpath"/>
        </pathconvert>
		<jar destfile="${jar.dest}/myapp-${DSTAMP}.jar" basedir="${build.class}">  
            <manifest>  
                <attribute name="Main-class" value="${mainclass}"/>  
                <attribute name="Class-Path" value="${mf.classpath}"/>  
            </manifest>  
        </jar>
	</target>

	<target name="genericjar" depends="antjar"></target>

</project>
  • 大小: 57 KB
分享到:
评论

相关推荐

    Jar包自动化管理(ant,ivy,nexus)

    NULL 博文链接:https://wuquanyin1011.iteye.com/blog/688167

    apache-ivy

    4. **仓库管理**:Ivy可以与多种类型的软件仓库(如Maven Central、Nexus、Artifactory等)进行交互,获取或发布库文件。 5. **缓存管理**:下载的依赖会被存储在本地缓存中,以供后续构建使用,避免重复下载。 6....

    apache-ivy-2.3.0.rar

    2. **仓库支持**:Ivy可以连接到多种类型的仓库,如Maven中央仓库、 Ivy自身的仓库、公司内部的Nexus或Artifactory等,检索项目所需的依赖。 3. **解析依赖**:Ivy会自动解析和解决项目中所有直接和间接依赖的关系...

    apache-ivy-2.4.0-bin.tar.gz

    它支持多种仓库格式,如Maven Central、Ivy仓库、Nexus等。 - **版本控制**:Ivy允许指定依赖的精确版本,或者使用通配符来匹配多个版本。 - **缓存管理**:Ivy会将下载的库存储在本地缓存中,避免了重复下载,...

    apache-ivy-2.5.0-rc1-src.tar.gz

    Ivy使用一种名为“ivy.xml”的配置文件来声明项目及其依赖,这种文件格式与Ant的任务定义相融合,使得项目构建和依赖管理更加统一。 "apache-ivy-2.5.0-rc1-src.tar.gz"这个文件是Apache Ivy 2.5.0-rc1的源代码...

    apache-ivy-2.5.0-bin-with-deps.zip

    6. **独立运行**:除了与Ant结合,Ivy还可以作为一个独立的命令行工具使用,这为不使用Ant或者需要独立进行依赖管理的场景提供了灵活性。 7. **插件系统**:Ivy拥有一个插件系统,允许用户扩展其功能,例如添加对...

    apache-ivy-2.5.0-bin-with-deps.tar.gz

    在Ant构建脚本中,我们可以使用`&lt;ivy:resolve&gt;`任务来解析依赖关系,然后使用`&lt;ivy:retrieve&gt;`任务将所需库下载到本地文件系统。这样,开发者就可以在构建过程中轻松地引用这些库,而无需手动管理它们。 Apache Ivy...

    apache-ivy-2.5.0-rc1-bin.tar.gz

    Apache Ivy是一个轻量级的依赖管理工具,常与Apache Ant一起使用,以解决Java项目中的依赖管理和构建问题。Ant是一个广泛使用的Java项目自动化构建工具,它允许开发者通过XML配置文件来定义任务,如编译、打包和测试...

    eclipse开发环境配置

    【描述】中的"Ivysettings"提到了Apache Ivy,这是一个开源的依赖管理工具,常与Ant一起使用,用于管理Java项目的依赖关系。Ivy可以读取配置文件(如`ivysettings.xml`),从中获取仓库信息,帮助项目下载和管理外部...

    org.restlet.jar org.restlet.ext.jackson.jar(nutch 2.2.1无法下载的jar包)

    在Nutch 2.2.1中,通常会使用Apache Ivy来管理依赖,Ivy是一个依赖管理系统,类似于Maven,但它更轻量级,且可以很好地集成到Ant构建工具中。然而,这里提到的这两个jar包似乎无法通过Nutch的默认ivy.xml配置文件...

Global site tag (gtag.js) - Google Analytics