Maven exec插件简介
它用于从maven命令中执行java和系统代码,基本上有两个目标,即exec: exec和exec: java。第一个目标是exec: exec,用于在不同的进程中执行任何程序;第二个目标是exec: java,用于在同一服务器上执行java程序。要在java中使用任何maven exec插件,首先我们需要在pom.xml文件中添加同样的插件。如果不在pom.xml文件中添加exec插件,我们就不能在项目中使用它。
它是如何工作的?
- 基本上,它有两个目标,第一个是exec: exec,第二个是exec: java。
- 第一个目标是用来执行任何代码到不同的进程。第二个目标用于在同一服务器上运行java代码。
- 下面是可供一般使用的版本,如下
- 版本1.0
- 1.0.1版
- 1.0.2版
- 1.1版
- 1.1.1版
- 版本1.2
- 版本1.2.1
- 版本1.3
- 版本1.3.1
- 版本1.3.2
- 1.4.0版
- 1.5.0版
- 1.6.0版
- 版本3.0.0
- 要使用maven exec插件执行java代码,我们需要在pom.xml文件的构建部分进行配置。
- 我们需要在pom.xml文件中添加以下配置,以便在项目中使用maven exec插件。
<plugin> -- Start of plugin section
<groupId> /* Start of groupId section */ name of groupid </groupId> -- end of groupid section.
<artifactId> /* Start of artifactId section */ exec-maven-plugin</artifactId> -- end of artifactId section.
<version> /* Start of version section */ version number </version> -- end of version section.
<configuration>
<mainClass> /* Start of mainClass section */ main class name </mainClass> -- end of mainClass section.
</configuration> -- -- end of configuration section.
</plugin> -- end of plugin section.
- 第一部分包含插件,maven exec的执行从插件部分开始。我们需要结束我们已经开始的每一节。
- 第二部分包含groupid,这只是maven exec插件中使用的groupid名称。
- 第三部分包含artifactid,这只是在配置maven exec插件时使用的exec插件的名称。
- 第四部分包含版本,这只是配置maven exec插件时使用的exec插件的实际版本号。
- 第五部分包含主类,这是配置maven exec插件时使用的exec插件的主类名称。
- 以下是我们在配置maven exec插件时需要用到的重要部分。
- 组名
- 工件名称
- 版本号
- 主类
- 要在我们的项目中配置它,我们需要按照以下步骤进行:
- 在pom.xml文件中添加该插件配置。
- 通过使用exec: java目标运行Maven构建。
- 在pom.xml文件中添加配置是非常重要的。不把配置加入pom.xml文件,我们就无法构建maven exec插件。
- 配置中的mainClass元素是最值得注意的地方。在该部分,我们必须定义由exec运行的java类:java目标。
- 在插件的配置中,我们可以明确地提供所有必要的执行细节。同时,我们也可以根据我们的用例,使用系统属性提供所有信息或部分信息。
- 下面是配置时使用的可选参数,如下:
- addOutputToClasspath - 这个参数的类型是布尔值。
- addResourceToClasspath - 这个参数的类型是布尔值。
- arguments - 这个参数的类型是列表。
- async - 这个参数的类型是布尔值。
- asyncDestroyOnShutDown - 这个参数的类型是布尔值。
- classpathScope - 这个参数的类型是字符串。
- commandlineArgs - 这个参数的类型是字符串。
- environemntScript - 这个参数的类型是文件。
- environemntVariables - 这个参数的类型是map。
- executable - 该参数的类型是字符串。
- executableDependency - 该参数的类型是可执行的依赖性。
- longClasspath - 这个参数的类型是布尔值。
- longModulepath - 这个参数的类型是布尔值。
- outputFile - 这个参数的类型是文件。
- quietLogs - 这个参数的类型是布尔值。
- skip - 这个参数的类型是布尔值。
- sourceRoot - 这个参数的类型是文件。
例子
例子 #1 - 使用默认参数
代码
<plugin> -- Start of plugin section
<groupId> /* Start of groupId section */ org.codehaus.mojo</groupId> -- end of groupid section.
<artifactId> /* Start of artifactId section */ exec-maven-plugin</artifactId> -- end of artifactId section.
<version> /* Start of version section */ 1.6.0 </version> -- end of version section.
<configuration>
<mainClass> /* Start of mainClass section */ com.journaldev.maven.utils.BuildInfo</mainClass> -- end of mainClass section.
</configuration> -- -- end of configuration section.
</plugin> -- end of plugin section.
# mvn exec:java
例子#2 - 有可选参数
代码
<plugin> -- Start of plugin section
<groupId> /* Start of groupId section */ org.codehaus.mojo</groupId> -- end of groupid section.
<artifactId> /* Start of artifactId section */ exec-maven-plugin</artifactId> -- end of artifactId section.
<version> /* Start of version section */ 1.6.0 </version> -- end of version section.
<configuration>
<executions>
<execution>
</configuration> -- -- end of configuration section.
</execution>
</executions>
</plugin> -- end of plugin section.
# mvn exec:java
总结
从maven命令中执行java和系统代码是非常有用和重要的。有两个目标被使用,即exec:exec和exec:java。要在项目中使用它,我们需要在pom.xml文件中进行配置。