配置单个程序入口

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. OOP课第三阶段总结

    OOP课第三阶段总结 前言: 我想说的第一句是:"我感受到了设计上的极大缺陷",从一开始,我完全就忽略了引脚的存在.因为在第二阶段中,家电模拟大作业一.二在不需要考虑引脚的情况下也 ...

  2. 全志A40i+Logos FPGA开发板(4核ARM Cortex-A7)硬件说明书(下)

    前 言 本文档主要介绍板卡硬件接口资源以及设计注意事项等内容,测试板卡为创龙科技旗下的全志A40i+Logos FPGA开发板. 核心板的ARM端和FPGA端的IO电平标准一般为3.3V,上拉电源一般 ...

  3. 复习 - ajax

    复习呢有一个很直观的感受,就是以前学的东西,萌懂半懂的,这一来全部都清楚了,你以前以为你学的并不好但是复习一次把以前的案例一做,居然能够自己独立完成,知识点看着掌握的还不错. 1. 两天时间就把整个a ...

  4. LaTeX 编辑协作平台 Overleaf 安装和使用教程

    在学术界和科技行业,LaTeX 已成为撰写高质量文档的标准工具.然而,传统的 LaTeX 使用体验常常伴随着以下挑战: 学习曲线陡峭 环境配置复杂 多人协作困难 实时预览不便 当然,市面上不乏很多在线 ...

  5. ubuntu16.04个性化配置

    前言 记录一下个人配置,方便后续参考 正文 配置用户sudo免密权限 只建议在个人测试环境这么配置,否则最好root还是需要用密码确认一下 sudo su echo "你的用户名 ALL=( ...

  6. 坚果云与floccus实现Chrome书签国内跨设备、跨平台同步

      本文介绍基于floccus插件与坚果云协同使用的方法,对浏览器的书签进行实时在线同步的操作.   在工作与学习中,我们时常希望在不同浏览器之间实现书签的同步:而一些传统的浏览器书签同步方案,或多或 ...

  7. Java-JDBC的对象DriverManager,Connection,ResultSet,PreparedStatement,工具类:JDBCUTILS,JDBC控制事务

    1. 概念 Java DataBase Connectivity Java 数据库连接 Java语言操作数据库 JDBC本质:其实是官方(sun)公司的一套操作所有关系型数据库的规则,即接口.各个数据 ...

  8. 那些血淋淋的教训——math

    1. 方程的解要写 x= 2023.12.10 晚上周测填空题第 \(2\) 题,方程的解写成了 \(7\) 而不是 \(x=7\). 2. 分类讨论 选填的最后一题. 3. 去绝对值看清楚符号(某个 ...

  9. 华为matebook 14s笔记本,Chrome浏览器开启硬件加速,屏幕闪屏,黑框,页面屏幕卡死,解决办法

    解决办法使用了 https://zhuanlan.zhihu.com/p/644296061 这个连接下的最后一个折中办法解决! 一.现象 Chrome开启"硬件加速模式"后,在观 ...

  10. XXL-JOB分片执行分布式任务

    XXL-JOB相对于springtask来说优点之一就是分布式执行任务,可以在调度中心为执行器分发任务,实现分布式. 分片广播任务即当一个微服务形成集群的时候,任务会完整的下发给每一个执行器.而不像其 ...