- 浏览: 2551595 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
eclipseEE版本中使用ivy管理jar包
我以前一直都是使用maven2来管理项目的,这次公司同事比较热推ivy,更轻量级些。只用ivy管理jar包,打包和管理项目还是用ant。我看同事搭建起来项目的效果,的确比较方便实用(其实主要是我们都更熟悉ant,呵呵。其实用maven也就只用到了管理jar的功能)。这里记录一下同事的配置方法,以后备用。
ivy首页
http://ant.apache.org/ivy/index.html
eclipse插件地址
http://www.apache.org/dist/ant/ivyde/updatesite
项目上没有按照maven2那样建立目录了,而是这样建立的目录:
src java的代码目录
conf 配置文件的目录
-log4j.properties log的配置
-config.properties 项目的properties配置
test 测试代码的目录
WebContent 我的WEB-ROOT目录
build.properties ANT打包的属性文件
build.xml ANT的配置文件,这里来打包,驱动ivy下载JAR包
ivy.xml IVY的jar配置文件
ivysetttings.xml IVY的服务器地址等配置
rebel.xml 我用到的一个不用重启TOMCAT,可以重新加载class的工具的配置文件
其实主要的是build.properties,build.xml,ivy.xml,ivysettings.xml几个配置文件,内容分别如下,
ivy.settings.xml:
<ivysettings>
<settings defaultResolver="chained"/>
<resolvers>
<chain name="chained" returnFirst="true">
<filesystem name="libraries">
<artifact pattern="${ivy.conf.dir}/lib/[artifact]-[revision].[type]" />
</filesystem>
<url name="sillycat">
<artifact pattern="http://localhost:8081/nexus/content/groups/public/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="sccl">
<artifact pattern="http://10.206.20.43:9999/nexus/content/groups/public/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
</chain>
</resolvers>
</ivysettings>
其中sillycat是本地私服,sccl是公司的私服,都使用的是原来maven2的nexus开源服务器。
ivy.xml是我们要管理和导入的jar包,这里只放了两个做个示例:
<ivy-module version="2.0">
<info organisation="sccl" module="swak" />
<configurations>
<conf name="release" />
</configurations>
<publications>
<artifact name="common" />
<artifact name="client" />
</publications>
<dependencies>
<!-- commons -->
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"/>
<!-- spring jar -->
<dependency org="org/springframework" name="spring" rev="2.5.6"/>
</dependencies>
</ivy-module>
build.properties文件,里面配置的是build的一些信息:
app.name=ivysample
catalina.home=D:\eclipse-company\apache-tomcat-6.0.20
ant.encoding=GBK
java.level=1.5
另外就是重头戏了,ANT的build.xml文件
<project name="${app.name}" default="all" xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- some variables used -->
<property file="build.properties" />
<property name="app.name" value="${app.name}" />
<property name="src.dir" value="src" />
<property name="conf.dir" value="conf" />
<property name="build.dir" value="build" />
<property name="dist.dir" value="dist" />
<property name="web.dir" value="WebContent" />
<property name="lib.dir" value="${web.dir}/WEB-INF/lib" />
<property name="tomcat.dir" value="${catalina.home}" />
<property name="ivy.install.version" value="2.0.0" />
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<!-- paths used for compilation and run -->
<path id="compile.path.id">
<fileset dir="${tomcat.dir}\lib" />
<fileset dir="${lib.dir}" />
<path location="${build.dir}" />
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}" />
<target name="download-ivy">
<mkdir dir="${ivy.jar.dir}" />
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true" />
</target>
<!-- ================================= target: resolve ================================= -->
<target name="resolve" depends="download-ivy" description="--> retreive dependencies with ivy">
<ivy:retrieve pattern="${web.dir}/WEB-INF/lib/[artifact]-[revision].[ext]" />
</target>
<!-- ================================= target: clean-cache ================================= -->
<target name="clean-cache-lib" description="--> clean the ivy cache">
<delete dir="${ivy.home}/cache" />
</target>
<!-- ================================= target: clean ================================= -->
<target name="clean" description="--> clean the project">
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
</target>
<!-- ================================= target: prepare ================================= -->
<target name="prepare" description="--> make-dir build , dist">
<tstamp />
<mkdir dir="${build.dir}" />
<mkdir dir="${dist.dir}" />
<echo message="built at ${DSTAMP}-${TSTAMP}" />
<echo message="ant.version - ${ant.version}" />
<echo message="ant.java.version - ${ant.java.version}" />
<echo message="ivy.cache.dir - ${ivy.home}/cache"/>
</target>
<!-- ================================= target: compile ================================= -->
<target name="compile" depends="prepare" description="--> Compile Java sources">
<!-- Compile Java classes as necessary -->
<property name="compile.java.encoding" value="${ant.encoding}" />
<mkdir dir="${build.dir}/WEB-INF/classes" />
<javac srcdir="${src.dir}" destdir="${build.dir}/WEB-INF/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" encoding="${ant.encoding}" source="${java.level}">
<classpath refid="compile.path.id" />
</javac>
<copy todir="${build.dir}/WEB-INF/classes">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
<include name="**/*.txt"/>
<include name="**/*.properties"/>
<exclude name="config.properties"/>
<exclude name="log4j.properties"/>
</fileset>
</copy>
</target>
<!-- ================================= target: javadoc ================================= -->
<target name="javadoc" depends="compile" description="-->Create Javadoc API documentation">
<mkdir dir="${dist.dir}/api-docs" />
<javadoc sourcepath="${src.dir}" destdir="${dist.dir}/api-docs" packagenames="*">
<classpath refid="compile.path.id" />
</javadoc>
</target>
<target name="copyWeb">
<copy todir="${build.dir}">
<fileset dir="${web.dir}">
<exclude name="WEB-INF/classes/**"/>
</fileset>
</copy>
</target>
<target name="war" depends="clean,compile,copyWeb" description="--> build web application war package">
<war destfile="${dist.dir}/${app.name}.war" webxml="${build.dir}/WEB-INF/web.xml">
<fileset dir="${build.dir}"/>
</war>
<copy tofile="${dist.dir}/config.properties" file="${conf.dir}/config.properties"/>
<copy tofile="${dist.dir}/log4j.properties" file="${conf.dir}/log4j.properties"/>
</target>
<target name="all" depends="war,javadoc" description="clean, build jar package, generate api- doc">
</target>
</project>
配置就完成了,运行以下ANT命令就行了
ant war 打war包
ant resolve 准备jar包
ant clean-cache-lib 将jar包的本地cache清空,以得到相同版本号刷新版本jar
我以前一直都是使用maven2来管理项目的,这次公司同事比较热推ivy,更轻量级些。只用ivy管理jar包,打包和管理项目还是用ant。我看同事搭建起来项目的效果,的确比较方便实用(其实主要是我们都更熟悉ant,呵呵。其实用maven也就只用到了管理jar的功能)。这里记录一下同事的配置方法,以后备用。
ivy首页
http://ant.apache.org/ivy/index.html
eclipse插件地址
http://www.apache.org/dist/ant/ivyde/updatesite
项目上没有按照maven2那样建立目录了,而是这样建立的目录:
src java的代码目录
conf 配置文件的目录
-log4j.properties log的配置
-config.properties 项目的properties配置
test 测试代码的目录
WebContent 我的WEB-ROOT目录
build.properties ANT打包的属性文件
build.xml ANT的配置文件,这里来打包,驱动ivy下载JAR包
ivy.xml IVY的jar配置文件
ivysetttings.xml IVY的服务器地址等配置
rebel.xml 我用到的一个不用重启TOMCAT,可以重新加载class的工具的配置文件
其实主要的是build.properties,build.xml,ivy.xml,ivysettings.xml几个配置文件,内容分别如下,
ivy.settings.xml:
<ivysettings>
<settings defaultResolver="chained"/>
<resolvers>
<chain name="chained" returnFirst="true">
<filesystem name="libraries">
<artifact pattern="${ivy.conf.dir}/lib/[artifact]-[revision].[type]" />
</filesystem>
<url name="sillycat">
<artifact pattern="http://localhost:8081/nexus/content/groups/public/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="sccl">
<artifact pattern="http://10.206.20.43:9999/nexus/content/groups/public/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
</chain>
</resolvers>
</ivysettings>
其中sillycat是本地私服,sccl是公司的私服,都使用的是原来maven2的nexus开源服务器。
ivy.xml是我们要管理和导入的jar包,这里只放了两个做个示例:
<ivy-module version="2.0">
<info organisation="sccl" module="swak" />
<configurations>
<conf name="release" />
</configurations>
<publications>
<artifact name="common" />
<artifact name="client" />
</publications>
<dependencies>
<!-- commons -->
<dependency org="commons-logging" name="commons-logging" rev="1.1.1"/>
<!-- spring jar -->
<dependency org="org/springframework" name="spring" rev="2.5.6"/>
</dependencies>
</ivy-module>
build.properties文件,里面配置的是build的一些信息:
app.name=ivysample
catalina.home=D:\eclipse-company\apache-tomcat-6.0.20
ant.encoding=GBK
java.level=1.5
另外就是重头戏了,ANT的build.xml文件
<project name="${app.name}" default="all" xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- some variables used -->
<property file="build.properties" />
<property name="app.name" value="${app.name}" />
<property name="src.dir" value="src" />
<property name="conf.dir" value="conf" />
<property name="build.dir" value="build" />
<property name="dist.dir" value="dist" />
<property name="web.dir" value="WebContent" />
<property name="lib.dir" value="${web.dir}/WEB-INF/lib" />
<property name="tomcat.dir" value="${catalina.home}" />
<property name="ivy.install.version" value="2.0.0" />
<property name="ivy.home" value="${user.home}/.ant" />
<property name="ivy.jar.dir" value="${ivy.home}/lib" />
<property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar" />
<!-- paths used for compilation and run -->
<path id="compile.path.id">
<fileset dir="${tomcat.dir}\lib" />
<fileset dir="${lib.dir}" />
<path location="${build.dir}" />
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}" />
<target name="download-ivy">
<mkdir dir="${ivy.jar.dir}" />
<get src="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true" />
</target>
<!-- ================================= target: resolve ================================= -->
<target name="resolve" depends="download-ivy" description="--> retreive dependencies with ivy">
<ivy:retrieve pattern="${web.dir}/WEB-INF/lib/[artifact]-[revision].[ext]" />
</target>
<!-- ================================= target: clean-cache ================================= -->
<target name="clean-cache-lib" description="--> clean the ivy cache">
<delete dir="${ivy.home}/cache" />
</target>
<!-- ================================= target: clean ================================= -->
<target name="clean" description="--> clean the project">
<delete dir="${build.dir}" />
<delete dir="${dist.dir}" />
</target>
<!-- ================================= target: prepare ================================= -->
<target name="prepare" description="--> make-dir build , dist">
<tstamp />
<mkdir dir="${build.dir}" />
<mkdir dir="${dist.dir}" />
<echo message="built at ${DSTAMP}-${TSTAMP}" />
<echo message="ant.version - ${ant.version}" />
<echo message="ant.java.version - ${ant.java.version}" />
<echo message="ivy.cache.dir - ${ivy.home}/cache"/>
</target>
<!-- ================================= target: compile ================================= -->
<target name="compile" depends="prepare" description="--> Compile Java sources">
<!-- Compile Java classes as necessary -->
<property name="compile.java.encoding" value="${ant.encoding}" />
<mkdir dir="${build.dir}/WEB-INF/classes" />
<javac srcdir="${src.dir}" destdir="${build.dir}/WEB-INF/classes" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" encoding="${ant.encoding}" source="${java.level}">
<classpath refid="compile.path.id" />
</javac>
<copy todir="${build.dir}/WEB-INF/classes">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
<include name="**/*.txt"/>
<include name="**/*.properties"/>
<exclude name="config.properties"/>
<exclude name="log4j.properties"/>
</fileset>
</copy>
</target>
<!-- ================================= target: javadoc ================================= -->
<target name="javadoc" depends="compile" description="-->Create Javadoc API documentation">
<mkdir dir="${dist.dir}/api-docs" />
<javadoc sourcepath="${src.dir}" destdir="${dist.dir}/api-docs" packagenames="*">
<classpath refid="compile.path.id" />
</javadoc>
</target>
<target name="copyWeb">
<copy todir="${build.dir}">
<fileset dir="${web.dir}">
<exclude name="WEB-INF/classes/**"/>
</fileset>
</copy>
</target>
<target name="war" depends="clean,compile,copyWeb" description="--> build web application war package">
<war destfile="${dist.dir}/${app.name}.war" webxml="${build.dir}/WEB-INF/web.xml">
<fileset dir="${build.dir}"/>
</war>
<copy tofile="${dist.dir}/config.properties" file="${conf.dir}/config.properties"/>
<copy tofile="${dist.dir}/log4j.properties" file="${conf.dir}/log4j.properties"/>
</target>
<target name="all" depends="war,javadoc" description="clean, build jar package, generate api- doc">
</target>
</project>
配置就完成了,运行以下ANT命令就行了
ant war 打war包
ant resolve 准备jar包
ant clean-cache-lib 将jar包的本地cache清空,以得到相同版本号刷新版本jar
发表评论
-
Update Site will come soon
2021-06-02 04:10 1677I am still keep notes my tech n ... -
Portainer 2020(4)Deploy Nginx and Others
2020-03-20 12:06 430Portainer 2020(4)Deploy Nginx a ... -
Private Registry 2020(1)No auth in registry Nginx AUTH for UI
2020-03-18 00:56 435Private Registry 2020(1)No auth ... -
Docker Compose 2020(1)Installation and Basic
2020-03-15 08:10 373Docker Compose 2020(1)Installat ... -
VPN Server 2020(2)Docker on CentOS in Ubuntu
2020-03-02 08:04 455VPN Server 2020(2)Docker on Cen ... -
Nginx Deal with OPTIONS in HTTP Protocol
2020-02-15 01:33 356Nginx Deal with OPTIONS in HTTP ... -
PDF to HTML 2020(1)pdftohtml Linux tool or PDFBox
2020-01-29 07:37 405PDF to HTML 2020(1)pdftohtml Li ... -
Elasticsearch Cluster 2019(2)Kibana Issue or Upgrade
2020-01-12 03:25 720Elasticsearch Cluster 2019(2)Ki ... -
Spark Streaming 2020(1)Investigation
2020-01-08 07:19 295Spark Streaming 2020(1)Investig ... -
Hadoop Docker 2019 Version 3.2.1
2019-12-10 07:39 294Hadoop Docker 2019 Version 3.2. ... -
MongoDB 2019(3)Security and Auth
2019-11-16 06:48 241MongoDB 2019(3)Security and Aut ... -
MongoDB 2019(1)Install 4.2.1 Single and Cluster
2019-11-11 05:07 294MongoDB 2019(1) Follow this ht ... -
Monitor Tool 2019(1)Monit Installation and Usage
2019-10-17 08:22 325Monitor Tool 2019(1)Monit Insta ... -
Ansible 2019(1)Introduction and Installation on Ubuntu and CentOS
2019-10-12 06:15 312Ansible 2019(1)Introduction and ... -
Timezone and Time on All Servers and Docker Containers
2019-10-10 11:18 332Timezone and Time on All Server ... -
Kafka Cluster 2019(6) 3 Nodes Cluster on CentOS7
2019-10-05 23:28 283Kafka Cluster 2019(6) 3 Nodes C ... -
K8S Helm(1)Understand YAML and Kubectl Pod and Deployment
2019-10-01 01:21 326K8S Helm(1)Understand YAML and ... -
Rancher and k8s 2019(5)Private Registry
2019-09-27 03:25 362Rancher and k8s 2019(5)Private ... -
Jenkins 2019 Cluster(1)Version 2.194
2019-09-12 02:53 444Jenkins 2019 Cluster(1)Version ... -
Redis Cluster 2019(3)Redis Cluster on CentOS
2019-08-17 04:07 373Redis Cluster 2019(3)Redis Clus ...
相关推荐
IvyDE使得开发者可以直接在Eclipse IDE中使用Ivy的功能,包括图形化查看依赖树、解决冲突以及管理本地仓库等,为Java开发者提供了一个更加直观和便捷的开发环境。 总的来说,Ivy作为Java开发中的一个强大工具,极大...
ant 构建所需要的jar包,用于jasper report的项目,因项目中需要依赖一些外部jar包,所以必须要用构建工具,ivy是构建所必须的工具包。
IvyDE是Ivy的Eclipse插件,它将Ivy的依赖管理功能整合到Eclipse环境中,使得开发人员可以更方便地处理项目的依赖关系。 安装Ivy和IvyDE插件的过程如下: 1. **获取安装包**:首先,你需要从官方或者可靠的源获取...
总的来说,这个压缩包是为了帮助开发者在Scala项目中使用SBT和Ivy2进行构建和依赖管理。它提供了必要的工具和库,使得开发者可以快速搭建开发环境,便捷地管理项目依赖,从而高效地进行开发工作。
- **依赖管理**:使用如 Ivy 或 Nexus 这样的仓库管理器,集中存储和分发`jar`包,便于管理和更新。 **5. 操作jar包** - **jar命令**:Java自带的`jar`命令用于创建、提取和更新`jar`文件。 - **解压查看**:使用`...
通过以上步骤,你就能在Eclipse中成功安装并使用Ivy和IvyDE插件,从而更好地管理你的Java项目依赖。IvyDE提供了一种直观的方式查看和管理项目的依赖关系,包括搜索、解析、更新和导出等功能,极大地提高了开发效率。...
必须注意对于不同的hadoop版本,` HADDOP_INSTALL_PATH/share/hadoop/common/lib`下的jar包版本都不同,需要一个个调整 - `hadoop2x-eclipse-plugin-master/ivy/library.properties` - `hadoop2x-eclipse-plugin-...
赠送jar包:ivy-2.4.0.jar; 赠送原API文档:ivy-2.4.0-javadoc.jar; 赠送源代码:ivy-2.4.0-sources.jar; 赠送Maven依赖信息文件:ivy-2.4.0.pom; 包含翻译后的API文档:ivy-2.4.0-javadoc-API文档-中文(简体)版...
ivy-2.3.0.jar包,我编译eclipse hadoop插件用到的
9. mysql-connector-java.jar或其他数据库驱动:根据项目中使用的数据库类型,需要相应的JDBC驱动来建立与数据库的连接。 在实际开发中,这些JAR文件会被添加到项目的类路径(ClassPath)中,或者在Maven或Gradle等...
ivy-2.1.0.jar包,我编译eclipse hadoop插件用到的
ivy-2.5.0.jar
1. 在 Eclipse 中使用 Ivy: * 更新 SVN 目录:https://srv-svnserver.digitalchina.com:8443/svn/HDXZ_SVN/01 工作库 / 03- 实现 / 源程序 * 设置 IvySettings.xml:使用 Eclipse 中 Window 菜单->Preferences ...
在Java开发过程中,Ant是一个非常重要的构建工具,它允许...在实际开发中,根据项目的规模和需求,可能还需要考虑更复杂的情况,如版本管理和依赖冲突解决,这通常需要借助于Ivy、Maven等更高级的依赖管理工具来实现。
ivy 1 4 1 jar 好难找啊
同时,一定要注意,升级JSTL版本可能需要修改JSP页面中使用的标签语法,因为不同版本的JSTL可能对某些标签的实现有所改变。 总之,理解和处理JSTL版本冲突是Java Web开发中的重要一环。通过合理管理依赖,我们可以...
总结,"综合JAR版本管理源码"揭示了Java项目中JAR版本管理的核心理念和实现方式。理解和掌握这些知识,对于提升开发效率、维护项目稳定性至关重要。通过深入学习和应用这些源码,开发者可以更好地应对复杂的JAR版本...
Ivy的核心功能是管理项目的依赖关系,确保在构建过程中正确地引入和解析所需的库文件。 标题中的"apache-ivy"指的是Apache组织下的Ivy项目,这是一个专门处理项目依赖的子项目。"bin zip 2.2"表示这是Ivy的二进制...
在实际使用中,fatjar通常与Ant或Ivy等构建工具配合使用。例如,如果你的项目使用Ant作为构建工具,可以在Ant构建脚本中添加fatjar插件,配置相应的任务来执行打包操作。这通常涉及到定义一个`<target>`,在其中调用...