学习maven近一个多月了,中间因为个人的事情,所以没有全力
学习,但对概念的东西掌握了一些,但很多技术细节还是似懂非懂的,但还是拿一个真实的项目进行编译学习。
一个月下来,感觉maven真是学的很累,虽然不断的参阅《maven指南》,但真实项目比指南中的复杂,于是不断的在网上寻找着问题的解决,然后一步一步的前进。
终于代码能编译出来了,但最大的问题也随之而来,如何打包,特别在最后的资源拷贝中,试了很久,都无法把资源放到一起,先是class文件,然后是web-inf中的lib等文件,不断调试后,在网上找了近一周,才把资源都放在一起,但在打包过程中,assembling又会重新结构包的目录,所以老在打包中出现死循环的情况,最后发现还是自定义了输出目录惹的祸,去掉自定义输出目录后,感觉就简单多了。定义好包名就行了,展示下我父pom中的build部分:
<build>
<!-- 命令行输入时,默认执行mvn package -->
<!-- defaultGoal>package</defaultGoal>-->
<!-- 设定classes输出到WebRoot/WEB-INF/classes中 -->
<sourceDirectory>java</sourceDirectory>
<outputDirectory>target/classes</outputDirectory>
<resources>
<resource>
<directory>java\dao</directory>
<includes>
<include>**/*.hbm.xml</include>
</includes>
</resource>
<resource>
<directory>resources/cxf</directory>
</resource>
<resource>
<directory>resources/dao</directory>
</resource>
<resource>
<directory>resources</directory>
<excludes>
<exclude>cxf/*.xml</exclude>
<exclude>dao/*.xml</exclude>
</excludes>
</resource>
</resources>
<plugins>
<!-- war插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<extensions>false</extensions>
<inherited>true</inherited>
<configuration>
<warName>ecis_ws</warName>
<webXml>WEB-INF/web.xml</webXml>
<outputDirectory>ll/web-inf</outputDirectory>
<!-- <warSourceDirectory>WEB-INF</warSourceDirectory>-->
<webResources>
<resource>
<directory>\</directory>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<!-- 设定JDK版本及编码,同时设定外部引用的jar包 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
<optimize>true</optimize>
<compilerArguments>
<extdirs>E:\maven-test\ecis_ws\WebRoot\WEB-INF\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
请多多指教,里面还是有很多可以优化的,以及自动部署部分的plugin还未加入。希望可以和更多的朋友探讨maven,这是个难理解,学习时间较长的自动构建工具,但看到自动打包后能用的东西,心里还是感觉蛮爽的。