【问题标题】:how to run submodule file from maven command line如何从 Maven 命令行运行子模块文件
【发布时间】:2014-02-03 18:10:48
【问题描述】:

我是 Maven 的新手,从 sonatype 学习 101 http://books.sonatype.com/mvnex-book/reference/index.html

我仍然对使用子模块创建 maven 项目感到困惑。我正在使用 eclipse 创建 maven 项目并在其下创建模块。

  1. maven 项目可以有源代码还是只有 POM 文件并且源代码在模块中?
  2. 我知道我可以使用以下命令运行 maven,如果没有模块并且所有存在的都是 maven 项目

    mvn exec:java -Dexec.mainClass="hello1"
    
  3. 在我有 maven 项目和子模块的情况下:

    • main 方法应该存在于哪里?在主项目或模块中?
    • 执行该 main 方法的命令应该是什么?
    • 如果这个 main 方法必须调用其他 maven 模块中的方法,pom.xml(和其他配置)应该有哪些变化?我应该指定对其他 jar 的依赖还是有更多的依赖?

我似乎迷失了这些基本问题。我正在使用带有 m2e 插件和 maven 3.X 的 eclipse。

【问题讨论】:

    标签: eclipse maven


    【解决方案1】:

    回复 1) 我不知道reactor/父项目中是否不可能有源代码,但并不常见。至少我从未见过在父级中有代码的多模块项目。您参考的教程的第 6 章还描述了仅 POM 的父级,并指出适当的包装类型是“POM”。

    回复 2/3) 每个模块可以有零个或多个实现 Main 方法的类。如果一个模块需要另一个模块来运行,那么是的,您将其声明为模块 POM 中的依赖项。要运行一个模块,您首先必须运行反应器/父级的install 目标。然后你可以在你想运行的模块中调用exec目标。

    话虽如此。当您使用 Eclipse 时,如果您安装了 m2e 插件,则无需执行任何此操作。如果您下载了 Eclipse 的 J2EE 版本,那么它已经安装好了。 m2e 插件将根据 POM 中的依赖信息动态构建模块的 Eclipse 构建路径/类路径。您可以简单地右键单击具有 Main 方法的任何类并“作为 Java 应用程序”运行它。

    【讨论】:

    • Ralf-thank you..it is getting clear.. as I read more,拥有单个jar(带有程序集)是生成单个jar(带有子模块jar)并使用该jar的正确方法。我将如何 1) 在 Eclipse 中创建 assembly.xml;从网络的某个地方复制它还是...? 2)我可以在使用上述程序集生成的 jar 上使用 exec 吗? 3)在 eclipse 市场上我看到了很多 maven 工具; J2ee/eclipse 是否足以用于 maven 集成,或者您是否推荐任何其他市场工具用于 eclipse 中的多模块项目
    • 我不知道创建 assembly.xml 文件的向导。但是,您可以将网络上的示例用作起点。只需下载并使用“面向 Java EE 开发人员的 Eclipse IDE”,一切就绪。至少满足您的基本需求。
    猜你喜欢
    • 2018-10-13
    • 1970-01-01
    • 2017-08-08
    • 2012-04-23
    • 1970-01-01
    • 2016-07-18
    • 2015-08-13
    • 2015-04-01
    • 2011-03-28
    相关资源
    最近更新 更多