配置单个程序入口

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. P8451 题解

    显然,题面明摆着让你写一个可持久化 AC 自动机. 但是从空间来说这是不可能的. 想起做 不强制在线 的可持久化数据结构的一种方法,建立"时光树",具体来说,假若版本 \(x\) ...

  2. Java使用不同方式优雅拆分业务逻辑

    如何处理复杂的业务逻辑 在实际的业务开发当中,经常会遇到复杂的业务逻辑,可能实现出来的代码并没有什么问题,但是代码的可读性很差. 那么在实际开发中如何避免大面积的 if-else 代码块的问题? 补充 ...

  3. CF372C

    思路 根据题意可以得到dp转移方程是 \(f_{i,j}=\max\{f_{i-1,k}+b_i-|a_i-j|\}\) 而且 \(j-(t_{i}-t_{i-1})\times d\le k\le ...

  4. Mybatis-Plus最优化持久层开发

    Mybatis-plus:最优化持久层开发 一:Mybatis-plus快速入门: 1.1:简介: Mybatis-plus(简称MP)是一个Mybatis的增强工具,在mybatis的基础上只做增强 ...

  5. Solo 开发者周刊 (第5期):打破常规,探索技术新边界

    这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 产品推荐 1. ...

  6. django python 循环一个月的每一天

    from datetime import datetime, timedelta def get_dates_in_month(year, month): start_date = datetime( ...

  7. 入门深度学习和TensorFlow

    入门深度学习和TensorFlow时,首先要确保掌握必要的先导知识,然后逐步通过理论和实践相结合的方式深入学习.以下是一个具体的引导例子以及后续的学习计划. 入门深度学习和TensorFlow 1. ...

  8. perf 性能分析工具

    perf 性能分析工具 perf topperf recordperf reportperf listperf stat perf top -p <pid> 例如查看redis进程的内核调 ...

  9. 对比python学julia(第一章)--(第五节)八十天环游地球

    5.1.  问题描述 <八十天环游地球>是法国作家儒勒·凡尔纳创作的一部长篇小说,讲述了这样一个神奇的故事. 在1872年的伦敦,英国绅士福格跟俱乐部的朋友以巨资打赌他能在80天实现环游地 ...

  10. 【Java】PDF模板生成PDF文档

    一.需求背景 客户要求一份文书,文书内容有一些表单项,例如: 1.基本的是和否 (单选框或复选框) 2.备注内容(纯文本信息) 3.单位,机构组织,人员,字典项(下拉选择) 4.用户数字签名(图片信息 ...