普通项目转为maven项目及相关操作说明
普通项目转为maven项目及相关操作说明
1 原项目简述

如图,一般的项目大致包括三类路径:src,源码路径;test,单元测试路径;lib第三方类包路径。
示例项目中,BaseDao类依赖于mysql-connector-java-5.1.15-bin.jar。SimTest类为依赖JUnit4的单元测试类。
2 将项目转为maven项目
2.1 添加pom.xml文件
在eclipse中邮件单击项目选择Maven->Enable Dependecy Management。如下图:

然后根据提示,设定maven项目信息。

之后生成的pom.xml文件内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sogou</groupId>
<artifactId>example.NormalToMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
2.2 向pom.xml中添加资源库和上传部署资源库
为了能够正确下载依赖的第三方jar包,需要在pom.xml中配置我们的资源库。添加如下配置:
<repositories>
<repository>
<id>sogou.repo</id>
<url>
http://***/nexus/content/groups/public
</url>
<name>Sogou Repository</name>
</repository>
<repository>
<id>sogou.repo.old</id>
<url>
http://***/nexus/content/groups/public
</url>
<name>Old Sogou Repository</name>
</repository>
</repositories>
为了能将项目的jar包上传到我们的资源库并被其他maven项目依赖,需要在pom.xml中配置上传资源库。添加如下配置:
<distributionManagement>
<repository>
<id>sogou-wd-releases</id>
<name>Sogou Release Distribution Repository</name>
<url>
http://***/nexus/content/repositories/Release
</url>
</repository>
<snapshotRepository>
<id>sogou-wd-snapshot</id>
<name>Sogou Snapshot Repository</name>
<url>
http://***/nexus/content/repositories/snapshots
</url>
</snapshotRepository>
</distributionManagement>
为了保证项目的jar包能正确上传,还需要确定本地maven的配置文件settings.xml中有对应上传资源库的用户名和密码。其配置如下:
<servers>
<server>
<id>sogou-wd-releases</id>
<username>你的用户名</username>
<password>你的密码</password>
</server>
<server>
<id>sogou-wd-snapshot</id>
<username>你的用户名</username>
<password>你的密码</password>
</server>
</servers>
其中id要与之前配置的上传资源库id对应。默认为LDAP中的用户名(不带@及之后的用户名)和密码,如果无效可以找谭博侃申请。
此外在settings.xml中可以配置我们的资源库为mirror,以我们的资源库为所有远程资源库的镜像,加快jar包的下载。其配置如下:
<mirrors>
<mirror>
<id>nexus-sogou</id>
<mirrorOf>*</mirrorOf>
<url>
http://***/nexus/content/groups/public
</url>
</mirror>
</mirrors>
当包括其他的所有配置都完成后,执行mvn clean deploy成功后,会在http://cloud.sogou-inc.com/nexus/中看到刚刚上传的jar包。如图:

2.3 向pom.xml中添加依赖jar包
以本项目为例,其配置如下:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<type>jar</type>
<scope>test</scope>
</dependency>
</dependencies>
如果不知道依赖的第三方jar包的配置,可在http://***/nexus/ 中搜索。如下图:

2.4 配置源码和测试路径
由于一般在eclipse中开发的项目路径都不符合maven默认源码和测试路径,因此要对源码路径进行配置,否则maven不会进行编译和测试。以本项目为例,其配置如下:
<build>
<testSourceDirectory>test</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apahce.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<testClassesDirectory>
target/classes-test
</testClassesDirectory>
<testSourceDirectory>test</testSourceDirectory>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
其中插件org.codehaus.mojo. build-helper-maven-plugin用于添加源码路径。testSourceDirectory 和org.apahce.maven.plugins. maven-surefire-plugin用于指定测试源码路径。
2.5 其他配置
<properties>
<project.build.sourceEncoding>
GBK
</project.build.sourceEncoding>
<compileSource>1.6</compileSource>
</properties>
其中project.build.sourceEncoding代表项目中源码文件所使用的编码。compileSource代表编译版本。
3 web项目的maven配置
Web项目与示例项目不同,一方面需要打成war包;另一方面在转换成maven项目后,打包时需要将不同文件拷贝到不同路径下,这也是我们原有的项目不符合maven web项目文件路径的标准造成的。因此,除了之上的配置外还须一下配置。
3.1 配置打包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<webXml>WebContent/WEB-INF/web.xml</webXml>
<archive>
<addMavenDescriptor>
false
</addMavenDescriptor>
</archive>
<webResources>
<resource>
<directory>src</directory>
<includes>
<include>**/struts.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>WEB-INF/classes</targetPath>
</resource>
<resource>
<directory>WebContent</directory>
<filtering>true</filtering>
<targetPath>.</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
其中webXml指定了web.xml文件所在的文件夹,如果插件无法找到web.xml则会打包失败。webResources表示在打包时资源文件夹需要移动到的指定目录。每个resource中directory代表资源文件原路径,可以用includes和excludes对文件进行过滤。targetPath为移动到的目录。
3.2 配置clean
Web项目中,需要额外清理WebContent/WEB-INF中的内容。对此,其配置如下:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>
WebContent/WEB-INF
</directory>
<includes>
<include>lib</include>
<include>classes</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
普通项目转为maven项目及相关操作说明的更多相关文章
- 如何用Eclipse将普通的JavaWeb项目转为Maven项目
最新自己的第一个项目差不多稳定运行之后 想着将项目转为Maven项目.于是参考网上成功的将自己的普通的项目转为了maven项目,现在记录一下: 0.普通的java项目的结构如下: 1.接下来开始进行正 ...
- Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )
Eclipse使用之将Git项目转为Maven项目(全图解) 2017年08月11日 09:24:31 阅读数:427 1.打开Eclipse,File->Import 2.Git->Pr ...
- web项目转为maven项目
声明一下项目本来就是maven项目,只是刚开始部署的时候转为maven项目!!! 2.查看POM文件 3.导入依赖jar包(编译,运行,打包) 4. 注意项目为Maven+java 加载jar包小技巧
- 一般项目转为Maven项目所遇到的问题
最近搞CI,准备使用Maven,但以前的项目不是Maven项目,需要把项目转换为Maven项目.这遇到几个小问题,一是jar包的依赖,二是从本地仓库取出依赖jar包. 由于没有本地仓库,要手动添加ja ...
- 老项目转为maven的步骤具体说明
可先阅读 关于已有项目转为maven的一点看法 新建maven项目要点 事实上之前已转过几个.但忘了记录下来.今天又转了一个项目,补记录一下. 步骤 1.写pom.xml 最耗费时间的一步.由于不用m ...
- 如何把maven项目转为eclipse项目
如何把maven项目转为eclipse项目,按照如下操作便可. 在cmd窗口, 载cmd窗口进入到maven项目所在目录下,输入如下命令: mvn eclipse:eclipse 这样便可.
- eclipse web项目转maven项目
ps:好久没写博客了,工作了人就懒了,加油加油,up,up 1 eclipse web项目目录 /web app src com.xx.xx *.properties *.xml WebRoot W ...
- 将Maven2项目转为MyEclipse项目
现在项目中,大家开始用jetty.它不用像在MyEclipse中使用Tomcat那样要部署,也不用像在Tomcat中那样,要把应用都放到webapp文件夹下.jetty可以直接用你的项目的目录结构. ...
- 普通 Java 项目转换为 Maven 项目
普通 Java 项目转换为 Maven 项目 本文为原创文章,转载请注明出处.源码已分享至GitHub. 本文提供一个完整可行的将遗留项目转换为Maven项目的步骤.至于转换Maven构建项目的好处不 ...
随机推荐
- wifi认证Portal开发系列(二):FreeRadius的安装和测试、关联Mysql
注:本次安装是基于FreeRadius 3版本进行安装配置的,在配置Mysql的过程中,与2版本有些不同.操作系统是CentOS 7 一.准备工作 工具的安装 #安装rz.sz命令用于文件上传 yum ...
- [jjzhu学java]之solr4.9同步mysql数据
Solr是一个高性能,採用Java5开发,基于Lucene的全文搜索server.同一时候对其进行了扩展,提供了比Lucene更为丰富的查询语言,同一时候实现了可配置.可扩展并对查询性能进行了优化,而 ...
- linux中likely()和unlikely()
likely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢?首先明确: if (likely(value))等价于if (value) if (unlike ...
- Docker入门系列6 如何打开多个终端进入Docker容器
Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH.如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可.当我启动了五个容器后,每个容器默认是没有配置SS ...
- struts2 Eclipse 中集成strust2开发框架实例
下面通过建立一个小的实例具体来说明Eclipse 集成struts2,以下实例采用的为 struts2 版本为 struts2 2.2.3.1 为应用. 1. 下载struts2的开发包 第一步: 在 ...
- 如何学习CCIE
想想自己拖了这么久,也没考试,也没积极去做实验,心里也有怨念,其实一直是方法不对,今天心里产生共鸣,后悔当初太年轻. 转载地址:http://bbs.hh010.com/thread-467553-1 ...
- springcloud和kubernetes对比
由于这两个都不熟,所以在考虑学哪个. 先说结论:都要学,但是重点学k8s,k8s是一个更加完善的解决方案,springcloud被淘汰只是时间的问题. 从自己的经历和网上的文章两方面分析 个人经历: ...
- Nodejs 中常见的加密算法:RSA(1)
Linux用户(以Ubuntu为例) $ openssl 进入OpenSSL程序 OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私钥 OpenS ...
- java基础语言 运算符
/* ++,--运算符的使用: 单独使用: 放在操作数的前面和后面效果一样.(这种用法是我们比较常见的) 参与运算使用: 放在操作数的前面,先自增或者自减,然后再参与运算. 放在操作数的后面,先参与运 ...
- C ~ 指针零散记录
2016.10.11 一个记录 void MB_float_u16(float f,uint16_t *a,uint16_t *b) { uint8_t *fp; ① uint8_t *ap; ② a ...