浏览 6600 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-10
项目现在用的是Maven来控制管理项目开发。
现在问题: 一个项目, 想针对不同情况,做不同部署。 即,一个项目ProjectA, 所针对的业务逻辑环境有EnvirC和EnvirD。对于EnvirC,ProjectA打包时需要 jspC1, jspC2, jspC3, classC1,ClassC2;对于EnvirD,ProjectA打包时只需要jspC1, jspC2和classC1。
我们知道用ant打war包时,可以通过ant脚本选择要包含的文件,也可指定不包含进来的文件夹。
但使用maven打包时,还没见过怎么在pom.xml中选文件,怎么指定不包含文件。
这样问题:
1, 用Maven能不能像用ant脚本那样地指定文件? 如果不能,可不可以通过ant插件来拉来这个功能?
如果能,可不可以在一个pom文件中写两个像ant中target概念?能不能怎么在maven打包时指定“target”? Maven调用Ant脚本的最佳实践。
如果不能写两个“target”, 倒是可以把两个target分别写在两个pom文件中,这样就引出新问题, maven能不能在打包时怎么指定pom文件?
为什么不直接用ant来打包? 这样的麻烦是,不能像maven那样优雅地引用jar包。 这样,转向一个问题,ant能不能像maven那样优雅地借用maven的jar包?在ant脚本中使用maven管理的dependency
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-10
引用 一个项目, 想针对不同情况,做不同部署。 即,一个项目ProjectA, 所针对的业务逻辑环境有EnvirC和EnvirD。对于EnvirC,ProjectA打包时需要 jspC1, jspC2, jspC3, classC1,ClassC2;对于EnvirD,ProjectA打包时只需要jspC1, jspC2和classC1
使用profile 在pom中加入 <profiles> <profile> <id>EnvirC</id> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- 在这里使用<includes></includes>, <excludes></excludes> 来选择要使用的源文件 --> <!-- 在你举的例子中,EnvirC基本上包括所有资源,所以这里不用填 --> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 在这里使用<packagingIncludes></packagingIncludes>, <packagingExcludes></packagingExcludes> 来选择要使用的jsp或其他资源 --> <!-- 在你举的例子中,EnvirC基本上包括所有资源,所以这里不用填 --> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>EnvirD</id> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- 在这里使用<includes></includes>, <excludes></excludes> 来选择要使用的源文件 --> <excludes>classC2</excludes> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 在这里使用<packagingIncludes></packagingIncludes>, <packagingExcludes></packagingExcludes> 来选择要使用的jsp或其他资源 --> <packagingExcludes>jspC3</packagingExcludes> </configuration> </plugin> </plugins> </build> </profile> </profiles> 在运行时使用 mvn -p [profile_name] [goal(s)] [phase(s)] 示例 mvn -p EnvirC clean package 我没有试过上面的pom片段是否能做到你所说的,但使用profile一定可以达到你所说的要求。 maven-compiler-plugin,maven-war-plugin的configuration中的配置请见官方文档: maven-compiler-plugin: http://maven.apache.org/plugins/maven-compiler-plugin/ maven-war-plugin: http://maven.apache.org/plugins/maven-war-plugin/ 引用 用Maven能不能像用ant脚本那样地指定文件?maven能不能在打包时怎么指定pom文件?
mvn -f [pom location] 示例 mvn -f another_pom.xml clean package 引用 为什么不直接用ant来打包? 这样的麻烦是,不能像maven那样优雅地引用jar包。 这样,转向一个问题,ant能不能像maven那样优雅地借用maven的jar包?
请使用ant + ivy |
|
返回顶楼 | |
发表时间:2010-01-22
请使用ant + ivy
我就是在使用maven一年之后,决定转向ant + ivy的。ivy能够提供足够强大的依赖管理功能,而且感觉比maven还要强大,更加灵活。然后依靠ant完成其他功能。 相当不错的一个组合。 |
|
返回顶楼 | |
发表时间:2010-01-22
|
|
返回顶楼 | |
发表时间:2010-01-24
ant+ivy+headlesseclipse build
|
|
返回顶楼 | |