最近在将一个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>
?
?
?
?