如何使用maven编译单个文件?
我用mvn archetype:create ...
设置了一个正在运行的maven项目mvn archetype:create ...
我可以使用mvn compile
编译所有源代码,但我希望能够同时编译一个文件。
有一种方法可以让maven编译任意单个.java文件吗?
谢谢
更新1:
我会在命令行上指定单个文件。 我会在命令启动时选择该文件。 我不会修改pom.xml。
更新2:
为什么我问这个? 因为我会在Vim编辑器中使用autotest-java
。
autotest-java
是ZenTest的一个hack /扩展(它是一个Ruby应用程序,可以在每次保存Ruby文件时自动启动unit testing)。
autotest-java
需要maven项目结构,并且要求编辑器/ IDE执行“save on save”。 事实上,它无法识别.java文件何时被修改,而是监视.class文件以进行修改。
我成功地将autotest-java与Netbeans一起使用(支持“编译保存”),但我会将它与Vim一起使用。
据我所知,这在命令行中是不可能的。 值得注意的是,(可选)参数excludes
和includes
您可以定义以配置pom.xml
中的编译器插件已弃用,如下所示:
$ mvn help:describe -Dcmd = compiler:compile -Ddetail [INFO]扫描项目...... [INFO]在存储库中搜索前缀为“help”的插件。 [INFO] ----------------------------------------------- ------------------------- [INFO]构建沙箱 [INFO]任务段:[help:describe](聚合器式) [INFO] ----------------------------------------------- ------------------------- [INFO] [help:describe {execution:default-cli}] [INFO]'compiler:compile'是一个插件目标(又名mojo)。 Mojo:'编译器:编译' 编译:编译 描述:编译应用程序源 已过时。 没有理由给出 实现:org.apache.maven.plugin.CompilerMojo 语言:java 绑定到阶段:编译 可用参数: ... 排除 编译器的排除filter列表。 已过时。 没有理由给出 ... 包括 编译器的包含filter列表。 已过时。 没有理由给出 ...
所以实际上没有真正的方法来做你想要的长期。
但这导致了一个问题。 由于Maven使用渐进式编译,即它只编译自上次构建以来在磁盘上更改的类,为什么还需要只编译一个类? 你的用例是什么?
您必须配置编译器插件以排除其他文件或仅包含该文件。
... org.apache.maven.plugins maven-compiler-plugin ...