配置单个程序入口

Exec Maven Plugin 插件允许你在 Maven 生命周期中的某个阶段直接运行 Java 类。

在你的 pom.xml 文件中添加如下配置:

<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<!-- 请使用最新或适合你项目的版本 -->
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 在这里配置你的主类 -->
<mainClass>com.example.Main</mainClass>
<!-- 在这里填写需要传递给 main 方法的命令行参数 -->
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
...
</arguments>
</configuration>
</plugin>
...
</plugins>
...
</build>
...
</project>

在这个例子中,<mainClass> 标签包含了你的主类的全路径,比如 com.example.Main。这假设 com.example.Main 中包含一个标准的 main 方法作为应用的入口。

一旦配置好,你可以使用以下命令运行你的应用:

mvn exec:java

Maven 会启动定义的主类。如果需要在 IDE 中运行程序,通常直接从 IDE 启动主类会比较方便。

如果你的项目是一个 web 应用程序,你可能会使用 tomcat7-maven-pluginjetty-maven-plugin 或者其他适合的 Servlet 容器插件来运行你的 web 应用。

配置多个程序入口

配置多个程序入口的方法类似配置单个程序入口,但是你需要为每个程序入口设置单独的 <execution> 执行块,每个执行块都有其对应的 <id><configuration>

<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<!-- 配置运行 com.example.A 类 -->
<execution>
<!-- 在这里指定一个唯一的 ID -->
<id>run-A</id>
<configuration>
<mainClass>com.example.A</mainClass>
<!-- 入口类 A 的参数 -->
<arguments>
<argument>arg1</argument>
<argument>arg2</argument>
...
</arguments>
</configuration>
<goals>
<goal>java</goal>
</goals>
</execution> <!-- 配置运行 com.example.B 类 -->
<execution>
<!-- 入口类 B 的 ID -->
<id>run-B</id>
<configuration>
<mainClass>com.example.B</mainClass>
<!-- 入口类 B 的参数 -->
<arguments>
<argument>arg3</argument>
...
</arguments>
</configuration>
<goals>
<goal>java</goal>
</goals>
</execution>
...
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>

在这个示例中,在 <executions> 中有了两个不同的 <execution> 块,每个执行块都有一个 <id><configuration>。通过这个配置,你可以执行两个不同的主类:

  • 要运行 com.example.A 类,请执行:
mvn exec:java@run-A
  • 要运行 com.example.B 类,请执行:
mvn exec:java@run-B

这里,@run-A@run-B 是定义在 <execution> 块的 <id> 标签中的标识符。这些标识符用于通过 Maven 命令行区分和执行对应的主类。如果你没有指定 <id>,Maven 默认使用 default-cli,所以当你有多个执行块时指定 <id> 是非常重要的。

Maven 配置程序入口的更多相关文章

  1. Maven配置详见

    CSDN 2016博客之星评选结果公布    [系列直播]零基础学习微信小程序!      "我的2016"主题征文活动   博客的神秘功能 maven 配置详解 标签: mave ...

  2. 部署Maven核心程序

    1.安装Maven核心程序 1.1 检查JAVA_HOME环境变量 2. 解压Maven核心程序压缩包,放在一个非中文无空格的路径下 3. 配置Maven相关的环境变量 3.1 MAVEN_HOME ...

  3. Android程序入口以及项目文件夹的含义和使用总结—入门

    新接触一门程序或者开发框架,我一般都要先弄清楚程序的入口在哪里,程序怎么运行的:建立一个项目后,各个文件夹有什么作用以及如何使用等等.理清楚这些东西对以后开发是很有好处的,古话说得好,工欲善其事,必先 ...

  4. Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用

    为什么要使用Maven 摘自百度百科的介绍 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.Maven 除了以程序构建能力为特色之外,还提 ...

  5. maven入门程序(3)

    欢迎转载交流:http://www.cnblogs.com/shizhongtao/p/3472864.html 这里我将展示如何用maven快速创建一个基于spring的web框架.创建步骤和上一篇 ...

  6. Maven(五)之Maven配置阿里云镜像飞快下jar包

    用过Maven的人都知道Maven对于依赖的管理让我们程序员从此远离了自己去在项目中把需要的jar包导入到项目中,但是因为中央仓库是在国外的,所以在我们从中央仓库下载依赖的时候, 我们发现下载速度真的 ...

  7. maven配置详解

    什么是pom?     pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的 ...

  8. 亲测实验,stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口

    这两天研究了STM32的低功耗知识,低功耗里主要研究的是STM32的待机模式和停机模式.让单片机进入的待机模式和停机模式比较容易,实验中通过设置中断口PA1来响应待机和停机模式. void EXTI1 ...

  9. 小程序入口构造工具&二维码测试工具

    小程序入口构造工具&二维码测试工具 本文将介绍我们小程序中隐藏的两个工具页面.原理虽不复杂,收益却实实在在,或许也能给诸君带来启发. 入口构造工具 痛点 PM&运营 投放链接 PM&a ...

  10. SpringCloud系列三:SpringSecurity 安全访问(配置安全验证、服务消费端处理、无状态 Session 配置、定义公共安全配置程序类)

    1.概念:SpringSecurity 安全访问 2.具体内容 所有的 Rest 服务最终都是暴露在公网上的,也就是说如果你的 Rest 服务属于一些你自己公司的私人业务,这样的结果会直接 导致你信息 ...

随机推荐

  1. Nuxt3 的生命周期和钩子函数(七)

    title: Nuxt3 的生命周期和钩子函数(七) date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要:文章阐述了Nuxt ...

  2. 嵌入式ARM端测试手册——全志T3+Logos FPGA评估板(下)

    前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...

  3. vue - ES6模块化、promise、webpack打包(所在在学的朋友们先看这篇,看了不吃亏)

    首先我要说明一下,没错,还是没有进入vue,刘备请诸葛亮三次都可以了吧,我这也是第三次了,也绝对是最后一次了,我应经摸透了因为,最后的webpack打包加上一个git学了过后我就去vue了. 为什么要 ...

  4. P9212 题解

    显然,我们维护的答案具有 可差分 性,所以转换为 \([1,r]\) 上的查询. 首先,对于 \(x,y,a_i\) 先对 \(m\) 取模不影响结果. 下面为了方便令 \(v = a_i\). 如果 ...

  5. MFC基于对画框工程笔记->更改窗口图标以及生成的.exe图标

    一.前言 继前一篇生成MFC基于对话框工程->新建MFC对话框后,开始改动对话框图标以及生成的.exe图标. 原对话框图标以及.exe图标: 在菜单栏中选择生成目录为Release 打开Rele ...

  6. Centos7离线安装gcc4.8

    有时候CentOS工作在无互联网的环境下,需要在离线环境下安装一些组件,这次实现的是模拟在离线环境下安装gcc4.8. 第一步: 先去http://mirrors.aliyun.com/centos/ ...

  7. 洛谷P1365

    WJMZBMR打osu! / Easy 题目背景 原 维护队列 参见 P1903 题目描述 某一天WJMZBMR在打osu~~~但是他太弱逼了,有些地方完全靠运气:( 我们来简化一下这个游戏的规则 有 ...

  8. Pluto 轻松构建云应用:开发指南

    开发者只需在代码中定义一些变量,Pluto 就能基于这些变量自动创建与管理必要的云资源组件,达到简化部署和管理云基础设施的目的,让开发者更容易使用云. 这里的云资源并非指 IaaS,而是指 BaaS. ...

  9. CF1359A 题解

    洛谷链接&CF 链接 题目简述 共有 \(T\) 组数据. 对于每组数据给出 \(n,m,k\),表示 \(k\) 名玩家打牌,共 \(n\) 张牌,\(m\) 张王,保证 \(k \mid ...

  10. Jmeter参数化2-读取文件

    如果你想要jmeter批量生成 指定 的参数值数据,可以使用导入文件参数化方法来实现 下面讲述两种jmeter读取文件参数值方法:"CSV 数据文件设置"."函数助手&q ...