Ant项目升级到Maven

2020-09-10  本文已影响0人  Running_阿文
前提
  1. 首先开发环境已经安装了Maven
  2. 并且开发工具需要支持Maven(版本不能太老),开发工具最后不要太老了
  3. 并且已经配置好了Maven,然后才能进行下一步。
步骤
  1. 把ant的项目的src下目录copy到 src\main\java 下,
  2. 把ant项目的配置文件全部copy到 src\main\resources 下,
  3. 把ant项目的页面、js、css等copy到 src\main\webap

注意:要把ant项目下的WEB-INF/lib下的jar全部删除掉,保留lib目录

在pom.xml文件中添加以下配置:

  1. 私服仓库地址
  2. 插件管理中添加maven插件的支持、
  3. resource配置资源文件路径,源文件路径
  4. 项目所用的jar都要添加到pom文件中(这是个比较繁琐的工作,容易造成jar冲突),个人建议,最好和项目中使用的jar的版本保持一致。

注意:有时候pom中添加了jar后它还依赖了其他jar,这个时候处理起来就比较麻烦了,需要一个一个找是哪个jar的问题。



遇到的坑

Failure to find maven-plugins:maven-findbugs-plugin:plugin:1.3
Failure to find maven-plugins:maven-cobertura-plugin:plugin:1.3

原因:因为jaxen-1.1.3依赖了以上两个JAR
解决方案: 需要改为下面的导入方式

<dependency>
    <groupId>jaxen</groupId>
    <artifactId>jaxen</artifactId>
    <version>1.1.3</version>
    <exclusions>
        <exclusion>
            <artifactId>maven-cobertura-plugin</artifactId>
            <groupId>maven-plugins</groupId>
        </exclusion>
        <exclusion>
            <artifactId>maven-findbugs-plugin</artifactId>
            <groupId>maven-plugins</groupId>
        </exclusion>
    </exclusions>
</dependency>

原因:经过jar的反复检查发现@Repository引用的是spring-2.0.jar里的,实际应该引用spring-context-3.2.2.RELEASE.jar中的。
经排查,jcaptcha-all.1.0-RC6.jar中依赖了spring-2.0.jarJAR,因为当时私服上没有jcaptcha-1.0-all.jar,只有jcaptcha-all.1.0-RC6.jar所以就用了它,真是好坑啊[流泪]

<dependency>
    <groupId>com.octo.captcha</groupId>
    <artifactId>jcaptcha-all</artifactId>
    <version>1.0-RC6</version>
</dependency>

解决方案:把jcaptcha-1.0-all.jar放到项目中进行引用



[ERROR] No plugin found for prefix 'docker' in the current project and in the plugin groups [org.sonarsource.scanner.maven, org.apache.maven
.plugins, org.codehaus.mojo] available from the repositories [local (D:\apache-maven\repository), nexus (http://192.168.20.206:8081/reposito
ry/public)] -> [Help 1]

原因:插件不在maven配置文件settings.xml中pluginGroups的白名单里面
解决方案:修改maven的settings.xml配置文件,在<pluginGroups>节点中添加
<pluginGroup>com.spotify</pluginGroup>

原因:由于本项目有点老,java类使用的编码是GBK,Maven打包时使用的是UTF-8,反复调整拉取、编译编码都不行。
解决方案:把java类文件编码改为UTF-8,OK了。

上一篇 下一篇

猜你喜欢

热点阅读