2010-10-18 31 views
1

我有以下来源布局:Multi-webapp Maven 2项目 - 如何构建单个Web应用程序?

. 
├── pom.xml 
├── modules (has pom) 
│ ├── module1 (has pom) 
│ └── module2 (has pom) 
│ └── moduleN (has pom) 
└── webapp1 (has pom) 
└── webapp2 (has pom) 

webapp1和webapp2的依赖于所有的模块(模块是DAO,服务等)。 目前,我建立了一切从根和mvn package给我两个WAR文件。

如何构建仅webapp1或webapp2?

如果我进入webapp1并运行mvn package它说它无法下载moduleX.jar(这是一个干净的存储库)。当然,Maven应该能够推断出这些模块需要首先作为依赖关系来构建?

回答

1

如何仅构建webapp1或webapp2?

使用"advanced reactor options"。从根:

mvn install -pl webapp1 -am 

这告诉Maven安装webapp1和在其webapp1取决于(以正确的顺序)的项目。

帮助(mvn -h)记录了这些命令是这样的:

 
-pl, --projects 
     Build specified reactor projects instead of all projects 
-am, --also-make 
     If project list is specified, also build projects required by the list 

请注意,您需要调用 install,依赖关系总是通过本地仓库解决(所以你需要 install它们)。 我错了,打电话package确实有效(我不知道如何/为什么,但它确实)。

+0

谢谢!我经常忽略命令行选项。 – opyate 2010-10-18 13:17:13

+0

Pascal,如果我从我的本地(rm -rf〜/ .m2/repository/com/mycompany)清除我的软件包,然后运行mvn -pl webapp1 -am软件包,那么回购保持不变,即我的JAR文件aren' t复制到本地。这实际上是一个很好的副作用,但这是否反过来说你要“安装”? – opyate 2010-10-18 13:34:51

+0

*我从我的本地(...)清除我的软件包,然后运行mvn -pl webapp1 -am软件包,然后回购保持不变*是的,'package'不会'安装到本地存储库(但为什么你是否在与本地存储库“搞砸”?)。 *这实际上是一个很好的副作用,但是这是否与你说的“安装”相反?*哇,我只是重复检查了一个宠物项目,你说得对,只调用'package'。我不知道这一点(我不明白为什么/它是如何工作的)。 – 2010-10-18 14:20:39

相关问题