是否可以在单个POM文件中构建多个工件?它不是关于构建多个程序集,而是工件具有不同的构建和依赖性,但引用相同的源。
例如我需要构建的一个工件是一个WAR文件,它从构建中排除某些AspectJ文件,另一个是JAR文件,需要在构建期间编织这些Aspects。
现在,我有2个pom.xml,它运行在同一个源的2个副本上,以产生所需的工件。这可以在一个POM中完成吗?
答案 0 :(得分:9)
尝试做你想做的事情通常是不好的做法,虽然可以用我推荐的配置文件和程序集来完成。
这就是我接近它的方式。
将代码分成jar项目并配置jar项目以使用aspectj编译器插件。使war项目依赖于jar项目,jar项目依赖于aspectjrt。您要排除的jar依赖项可以指定为范围“已提供”,因此它们不会包含在构建中,也不会通过配置jar依赖项来排除这些传递依赖项(请参阅传递依赖项排除部分) Dependency Mechanism documentation的详细信息。
当构建war时,任何编译范围的依赖项(及其传递依赖项)都将被捆绑到war的WEB-INF / lib目录中(也包括aspectjrt)。
如果您需要立即构建两个项目,请定义聚合器pom并将jar和war项目指定为模块。
答案 1 :(得分:0)