java - 如何从命令行访问 IntelliJ 的 java 编译器?

标签 java linux maven intellij-idea fedora

我有一个非常大的 maven 项目,当我调试时,为了查看更改而不得不重建整个项目真是太糟糕了。我目前的方法是在IntelliJ中编译java文件,然后将我的target目录下的class文件复制到我的tomcat/webapps/project/目录下,用intellij编译好的class文件替换已有的class文件。然后重建war文件,将其替换为tomcat/webapps目录下已有的war文件。

我希望能够自动执行此过程。我研究过使用 javac 命令执行此操作,但我遇到了从 .m2 目录中的 jar 文件导入包的问题,​​并且无法弄清楚如何根据特定文件自动执行类路径。我确信 IntelliJ 会自动执行此操作,并且想知道是否有一种方法可以从命令行运行 IntelliJ 的编译器,或者是否有人知道我如何让 javac 只为我整个项目范围内的一个文件工作。

感谢任何帮助,谢谢!

最佳答案

IntelliJ 将(默认情况下,可以选择委托(delegate)给 Eclipse 编译器或其他编译器)委托(delegate)给 javac 编译器。

如果您不想将项目导入 IntelliJ,那么您可以从命令行使用 maven 来构建项目。

如果您不想构建整个项目,那么您可以从命令行使用 javac。

要生成类路径,请使用: mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt

classpath.txt 将包含您的类路径。

从那时起,您可以执行以下操作:javac -cp(classpath.txt 的内容)您的 java 文件。

IntelliJ 即使在大型 maven 项目上也很快,它可以很容易地编译成你的 tomcat 指向的爆炸 war 。我不清楚您为什么不想从 IntelliJ 中受益。

关于java - 如何从命令行访问 IntelliJ 的 java 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45246081/

相关文章:

java - 我在滥用静电吗?

linux - 在 OpenSuSE(或一般的 linux)上,非服务启动脚本应该放在哪里?

linux - Bash 脚本运行带参数的程序不起作用

python - 如何在 python 脚本中导入 lldb

java - 项目和 BOM 依赖项之间有什么区别?

Maven 执行 :java run class file within jar

java - 从 ArrayList 写入 Excel 表 ListIterator

Java下载防洪

java - 如何将 tcp 套接字上的 java byte[] 发送到服务器上的 c++ char[]?

java - 在dse4.6中运行spark程序