将旧项目从Ant迁移到Maven的4个简单步骤

一段时间以来,我们一直在考虑将构建从蚂蚁移植到Maven。 它发生在上个月,实际上比我们预期的要简单。 根据我的经验,这里简要介绍了我们遵循的步骤。 我们的应用程序是一个具有多个框架和技术的企业Web应用程序构建,并作为单个WAR部署。

1.创建Maven项目目录结构

如Maven用户指南中所述,创建以下目录结构。 我们已经在项目的新文件夹下完成了此操作。

Maven-标准目录Layout.clipular简介

2.移动文件/文件夹并保留SCM日志

即使文件夹结构是新的,源文件也将是旧文件! 我们希望在将SCM日志移到新位置时保留它们。 在开始移动文件之前,请记住先提交在步骤1中创建的文件夹。 如果你使用SVN,请参阅本用户指南或SO问题上如何做到这一点。 将Java源代码,单元/集成测试和配置资源移动到适当的文件夹中。

3.创建POM并添加依赖项

迁移中最关键的部分是在POM中添加依赖项。 首先添加应用程序中使用的框架的依赖关系。 确保您添加的罐子版本正确。 您可以通过阅读jar的META-INF文件夹中的MANIFEST.MF文件来找到jar的版本。 如果文件名中缺少版本,这将有所帮助。
任何第三方jar文件可以被添加到Maven仓库中所讲述这里 。 如果您使用的jar文件版本非常旧,则其中的某些文件可能在maven存储库中不可用。在这里,您可以尝试升级到较新版本或按照之前的说明准备本地安装。 添加所有依赖项后,请尝试构建应用程序。 注意任何重大问题。

4.确保您在WAR中没有做太多更改

Maven是一个构建工具。 这意味着您的WAR不应更改。 因此,在最后一步中,我们将比较两个版本并确保它们相同。 确保您掌握所有差异。 另外,比较由maven生成的jar文件和您现有的文件,通过以下方式进行同步:

  • 添加<exclusions>删除不需要的罐子
  • 为缺少的罐子添加依赖项

根据您lib中的jar数量,这可能是一项艰巨的任务。 但是,请确保您涵盖了每一个内容,并知道它们为什么存在于您的应用程序中。

可能这是一个较晚的帖子,到目前为止,大多数应用程序可能已经迁移了。 无论如何,迟到总比没有好! 许多专家认为, Gradle作为新项目的构建工具也是不错的选择 。

参考:通过我们的JCG合作伙伴 Manu PK(位于The Object Oriented Life博客) 将旧项目从Ant迁移到Maven的4个简单步骤 。

翻译自: https://www.javacodegeeks.com/2014/02/4-simple-steps-to-migrate-legacy-projects-from-ant-to-maven.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

折腾Java设计模式之建造者模式

博文原址&#xff1a;折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, allowing the same construction process to create various representations. 将复杂对象的构造与其表现分离&#xff0c;允许相同的构…

python小甲鱼练习题答案_小甲鱼Python第 013讲元组:戴上了枷锁的列表 | 课后测试题及参考答案...

测试题&#xff1a;0. 请用一句话描述什么是列表&#xff1f;再用一句话描述什么是元组&#xff1f;列表&#xff1a;一个大仓库&#xff0c;可以随时往里面添加和删除任何东西。元祖&#xff1a;封闭的列表&#xff0c;一旦定义&#xff0c;就不可改变(不能添加、删除或修改)1…

Vue--- 一点车项目

一点车项目 cli脚手架 组件化 数据交互路由指向存入数据库 前端页面 cli脚手架的安装与搭建 创建对应包 页面组件化编辑 &#xff08;共享组件&#xff1a;摘取出来一模一样的组件重用&#xff09;&#xff08;私有组件:在自己的组件写入 引入共享组件&#xff09; 数据交…

设计模式:模式或反模式,这就是问题

我最近遇到了Wiki页面“ Anti-pattern” &#xff0c;其中包含详尽的反模式列表。 其中一些对我来说很明显。 他们中的一些让我想了一下&#xff0c;其他的让我想了更多。 然后&#xff0c;我开始在页面上查找反模式“ singleton”&#xff0c;但找不到。 &#xff08;文本搜索…

Redis的散列类型

Redis是采用字典结构以key-value的形式存储数据的&#xff0c;在散列类型&#xff08;所谓的hash&#xff09;中的value也是一种字典结构。如果用关系表结构去理解&#xff0c;就是key为对象&#xff0c;value是属性和属性值。如下图&#xff1a; 所以使用散列&#xff08;hash…

easy html css tree 简单的HTML css导航树

code: show: 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

Java实现并发线程中线程范围内共享数据

---恢复内容开始--- 利用Map&#xff0c;HashMap键值对的数据结构&#xff0c;实现并发线程中线程范围内数据共享。 package cn.qy.heima2;import java.util.HashMap; import java.util.Map; import java.util.Random;public class ThreadScopeShareData {private static int …

18.11.16-高等数学-曲率计算

11.16 转载于:https://www.cnblogs.com/coder211/p/10005502.html

springboot干什么的_Spring Boot 项目的这些文件都是干啥用的?

上一讲我们用官网包或者 IDE 工具&#xff0c;快速构建了 Spring Boot 应用&#xff0c;并且看到了第一个程序的运行结果&#xff1a;Hello World&#xff01;本文我们了解下 Spring Boot 的目录结构&#xff0c;了解一个事物&#xff0c;清楚了它的结构&#xff0c;明白了内部…

微信小程序开发——点击按钮退出小程序的实现

微信小程序官方是没有提供退出的API的&#xff0c;但是在navigator这个组件中&#xff0c;是有退出这个功能的&#xff1a; 详情参考官方文档&#xff1a;navigator。 示例代码&#xff1a; 1 <navigator open-type"exit" target"miniProgram">关闭小…

使用RequestHandlerRetryAdvice重试Web服务操作

1.引言 有时在调用Web服务时&#xff0c;我们可能有兴趣在发生错误的情况下重试该操作。 使用Spring Integration时&#xff0c;我们可以使用RequestHandlerRetryAdvice类实现此功能。 此类将使我们在放弃并引发异常之前重试指定次数的操作。 这篇文章将向您展示如何完成此任务…

ASP.NET MVC如何做一个简单的非法登录拦截

摘要&#xff1a;做网站的时候&#xff0c;经常碰到这种问题&#xff0c;一个没登录的用户&#xff0c;却可以通过localhost:23244/Main/Index的方式进入到网站的内部&#xff0c;查看网站的信息。我们知道&#xff0c;这是极不安全的&#xff0c;那么如何对这样的操作进行拦截…

无法创建java虚拟机_创建java虚拟机失败的解决方法

创建java虚拟机失败的解决方法解决问题的步骤&#xff1a;1、从eclipse文件夹中打开eclipse.ini文件2、修改–launcher.XXMaxPermSize属性3、将值改为512m即可配置文件格式&#xff1a;-startupplugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar--launcher.libra…

java 泛型嵌套泛型_Java泛型嵌套

package com.study.generics;//泛型的嵌套使用public class GenericsDemo06 {public static void main(String []args) {GenericsComputer computer new GenericsComputer("联想笔记本电脑","联想");GenericsPeople people new GenericsPeople(computer)…

[18/11/24]类和对象

1、类和对象 类可以看做是一个模版&#xff0c;或者图纸&#xff0c;系统根据类的定义来造出对象。我们要造一个汽车&#xff0c;怎么样造?类就是这个图纸&#xff0c;规定了汽车的详细信息&#xff0c;然后根据图纸将汽车造出来。 类&#xff1a;class。 对象&#xff1a;Obj…

小程序如何传数组数据到vs后台中

首先小程序要跟vs运行的状态打通&#xff0c;首先要修改配置&#xff0c;也就是说调试的时候&#xff0c;小程序一使用Post请求后台的方法时就能让vs进入调试状态。 1.修改vs中的配置&#xff0c;注意这个.vs文件&#xff0c;如图&#xff1a; 找到这个文件 然后打开这个文件&a…

使用Spring的Hibernate构建Java Web应用程序

这篇文章将展示如何在Spring环境中使用带有Hibernate ORM的MYSQL DB创建学生注册应用程序。 这是一个简单的应用程序&#xff0c;旨在在注册期间从用户收集输入详细信息&#xff0c;将详细信息保存在MYSQL DB中&#xff0c;并在登录期间对它们进行身份验证。 1.使用Maven模板创…

201771010102 常惠琢 《面向对象程序设计(java)》第十三周学习总结

实验十三 图形界面事件处理技术 实验时间 2018-11-22 1、实验目的与要求 (1) 掌握事件处理的基本原理&#xff0c;理解其用途&#xff1b; (2) 掌握AWT事件模型的工作机制&#xff1b; (3) 掌握事件处理的基本编程模型&#xff1b; (4) 了解GUI界面组件观感设置方法&#xff1…

vue中使用codemirror

https://blog.csdn.net/oumaharuki/article/details/79268498 别人的记载&#xff0c;写的很不错&#xff0c;还有下载的方法 以下是自己使用过的&#xff0c;做出来的例子&#xff1a; 做出来的效果图&#xff1a; 记住使用之前要npm下载哦 npm install vue-codemirror --s…

使用不可序列化的属性序列化Java对象

人们可能有多种原因想要使用自定义序列化而不是依赖Java的默认序列化。 最常见的原因之一是为了提高性能&#xff0c;但是编写自定义序列化的另一个原因是不支持默认序列化机制。 具体来说&#xff0c;如本博文所述&#xff0c;自定义序列化可用于允许将较大的对象序列化&#…