最近在将一个ant工程转化到maven
原始工程使用了OSGI,包括数个bundle工程,一个配置兼打包的工程,一个web工程。
运行时war包的lib内需要包括bundle的依赖。
使用run-jetty-run插件运行测试。ANT打包,打包过程主要流程:
tar--conf
? ? ? |-bundle--*.jar(bundles)
? ? ? |-war
? ? ? ? ? |-js
? ? ? ? ? |-WEB-INF
? ? ? ? ? ? ? ? ? ? |-lib-*.jar(web的依赖,bundle的依赖)
原本的ANT打包也是很精巧的,还用到的自己扩展的Task等。
?
maven化的过程:
class="xml" name="code"><includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}/bundle</directory> <includes> <include>*.*</include> </includes> <outputDirectory>bundle</outputDirectory> </fileSet> </fileSets>?includeBaseDirectory写成true目录会变成这样 moduleName-bundle-*.jar这样子;后面的directory也是需要这样写直接写成inclues 目录名/文件名会变成 bundle-target-bundle-*.jar,显然也是不行的。
<plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <warSourceDirectory>web</warSourceDirectory> <webXml>web/WEB-INF/web.prod.xml</webXml> <!--貌似设了warSourceDirectory以后一定要设这个--> <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> <warSourceExcludes> WEB-INF/web.xml, WEB-INF/web.prod.xml </warSourceExcludes> <packagingExcludes> WEB-INF/lib/*.api-*.jar,WEB-INF/lib/*.impl-*.jar, WEB-INF/lib/core.*.jar,WEB-INF/lib/base.*.jar, WEB-INF/lib/sys.*.jar,WEB-INF/lib/rainbow*.jar, WEB-INF/lib/*servlet*.jar </packagingExcludes> </configuration> </plugin>?
?
?
?