首页 > 解决方案 > 在 Maven 中,如何将源目录之外的类编译成任意目标目录?

问题描述

我有一个从 Ant 移植到 Maven 的遗留应用程序。我的 Maven 构建适用于主项目,我已将其移至标准 Maven 目录布局(*.javafiles in /src/main/java/),并将编译后的类输出/target/classes/为您希望的整洁。这些被打包在一个.war文件中。

但是,该项目还有一个文件夹层次结构之外的类,实际上是 Web 应用程序之外的类,其中包含通过 cron 作业运行的脚本。假设它是/cronjobs/MyClass.java. 我需要将该类编译并输出到其文件夹中,并将其/target/cronjobs/MyClass.class压缩为结果.war文件的一部分/cronjobs/

Maven可以做到这一点吗?我知道可以更改默认的“src”目录和“target”目录,但我不知道是否(或如何)可以为一个类运行单独的并行编译步骤。

MyClass.class我可以移动源文件,当然,如果使用其他类更容易编译它,然后稍后移动它(也许使用 WAR 插件?),但我肯定需要/cronjobs/.war.

标签: mavenmaven-compiler-pluginmaven-war-plugin

解决方案


我将项目分成两部分,webapp 作为war,cronjobs 作为jar。Maven 了解多模块格式,这在某种程度上是推动 webapp 与非 webapp 代码分离的最佳方式。


推荐阅读