如何把项目maven化

1.完成 maven环境的搭建

http://www.blogjava.net/fancydeepin/archive/2012/07/13/382965.html


2.按照maven的目录结构整理之前web应用文件夹


src

----main

--------java  (纯java文件)

--------resources      (项目中的配置文件,主要为xml和properties文件,注意保持各配置文件所在的包不变)

--------filters     (全局配置文件,dev       test      production)

--------webapp (WebRoot下的文件)


pom.xml      (主要有项目名的配置、对项目所依赖的jar包的配置,对项目构建环境的配置)



3.整理pom文件,完成构建,至BUILD SUCCESS


对照之前web项目中的lib目录下的所有jar包,在maven仓库中搜索各jar包(搜索是有技巧的,直接根据搜索没有根据jar包结构搜索靠谱),整理出各ar包的groupId  artifactId    version,尽量使用同一版本的jar包(有些不带有版本号的jar包,可以通过解压)。——这个是体力活儿~

形如:

 <dependency>
   <groupId>com.ckfinder.connector</groupId>
   <artifactId>ckfinder</artifactId>
   <version>2.3</version>
 </dependency> 

然后这时,可以查询一下项目中jar的依赖关系,因为一个jar包在下载时可能会级联下载其他jar包:

可以使用依赖关系树命令:mvn dependency:tree

然后排除掉级联的jar包,可使项目中的jar包做到最简


然后使用构建命令:mvn  clean compile

mvn后可以有-e 或 -u

来完成构建


如果构建失败,可以根据提示信息检查一下问题出在了哪里。 sun相关的警告信息可以不用理睬。

经过排查,完成构建。



另外,为了便于在本地调试,maven还提供了文件的拷贝、删除  的任务配置,下边是pom.xml中的配置

      
        <!--  Copy 资源, 配置文件到webapp 目录, 便于本地调试 --> 
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
               <execution>
                  <id>copy_web_resource</id>
                  <phase>compile</phase>
                  <configuration>


                   <tasks>
                       <echo >Copy dependency lib and class compiled.</echo>
                       <copy  todir="src/main/webapp/WEB-INF/classes"  overwrite="true">
                          <fileset dir="target/classes" >
                             <include name="**/*.*" /> 
                          </fileset>
                       </copy>
                       
                       
                        <copy todir="src/main/webapp/WEB-INF/classes" overwrite="true" includeEmptyDirs="false" >
                             <fileset dir="src/main/resources_generate" >
                                 <exclude name="**/*.class" />
                             </fileset>
                       </copy>
                       
                       <delete dir="src/main/resources_generate" />
                       <delete dir="target" />
                    </tasks>
                    
                  </configuration>
                   
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
          </plugin>  


以下是执行信息:

    

[INFO] Executing tasks
     [echo] Copy dependency lib and class compiled.
     [copy] Copying 712 files to D:\dev\eclipse\workspace\workspace_maven_forum\maven_forum\src\main\webapp\WEB-INF\clas
ses
   [delete] Deleting directory D:\dev\eclipse\workspace\workspace_maven_forum\maven_forum\src\main\resources_generate
   [delete] Deleting directory D:\dev\eclipse\workspace\workspace_maven_forum\maven_forum\target
[INFO] Executed tasks


4.解决jar包版本问题,使项目启动成功


如果启动报错,那么可以参照以下思路去解决:

把原来的那套jar包拷贝过来,编译、启动——要确认是正常的

然后把那些版本有变化的jar包逐一替换,替换后仍能正常启动,说明启动报错不是由于该jar包的版本变化引起的;

当某个jar包在替换时,不能正常启动了,那就表明是该jar包的版本变化引起的——这时采用该jar包的老版本即可。


你可能感兴趣的:(如何把项目maven化)