当前位置: 首页 > 面试题库 >

使用Maven进行树外构建。可能吗?

宰父疏珂
2023-03-14
问题内容

我开始学习一些发行版(目前为Cygwin和Debian)的包装。

他们要求构建系统以允许 树外构建 (同义词 out-of-source build ):

http://wiki.debian.org/UpstreamGuide#Out-of-
Tree_Builds

要解决“哑”构建系统(例如 cygport), 建议使用 lndir (来自 xutils 项目):

  lndir $ {S} $ {B}
  cd {B}
  ...构建命令...

我阅读了 mvn(1) 手册页,但未找到任何合适的方法。接下来,我尝试:

  $ mvn原型:生成-DgroupId = com.mycompany.app -DartifactId = my-app -DarchetypeArtifactId = maven-archetype-quickstart -DinteractiveMode = false
  ...
  $ pwd
  / maven /简单
  $ ls 
  我的应用
  $ mvn -f my-app / pom.xml编译
  ...
  [INFO] --- maven-compiler-plugin:2.0.2:compile(default-compile)@ my-app ---
  [INFO]将1个源文件编译到/ maven / simple / my-app / target / classes

如您所见,我在寻找避免这种情况的方法时,在源根层次结构中创建了 目标 目录。

Maven 是否可能 在树外 构建?如何?


问题答案:

它可能就像拥有一个

<build>
    <directory>/your/build/directory</directory>
</build>

在您的pom.xml中。/your/build/directory不必在源树中,并且可以使用常规${...}语法进行参数化。

干杯,



 类似资料:
  • 我开始学习几个发行版的打包(目前是Cygwin和Debian)。 他们需要构建系统以允许树外构建(同义词源代码外构建): http://wiki.debian.org/UpstreamGuide#Out-of-Tree_构建 要解决“哑”构建系统(例如cygport),建议使用lndir(来自xutils项目): 我阅读了mvn(1)手册页,但没有发现任何合适的内容。接下来,我只是尝试: 正如您所

  • 问题内容: 我对Maven的口头禅还比较陌生,但是我正在尝试使用Maven构建命令行可运行jar。我已经设置了依赖项,但是当我运行并尝试运行jar时,会发生两件事。首先,没有找到可纠正的主类。更正此错误后,在运行时出现错误,指出找不到类。 Maven没有将我的依赖库打包在jar中,因此我无法将jar作为独立应用程序运行。我该如何纠正? 问题答案: 最简单的方法是使用和预定义描述符创建一个程序集。您

  • 问题内容: 我试图使用maven为名为“ logmanager”的小型家庭项目生成可执行jar,如下所示: 如何使用Maven创建具有依赖项的可执行JAR? 我将此处显示的代码段添加到pom.xml中,并运行了mvn assembly:assembly。它在logmanager / target中生成两个jar文件:logmanager-0.1.0.jar和logmanager-0.1.0-jar

  • 我正在尝试建立基于Maven的应用程序的jar文件。所以我不需要将外部jar库包含到我的构建中。我需要我的应用程序在运行时从本地maven存储库或从本地文件夹提供这种外部依赖,这些将包含这些外部库。我为此依赖项配置pom文件,如下所示: 并尝试使用前缀运行这个jar。我正在用这个答案。

  • 我制作了一个Java应用程序,它使用Maven、JavaFX和一些其他依赖项。以前,构建一个可执行jar很容易,但由于Java11是模块化的,不包含JavaFX,所以我无法构建一个工作的jar。 我已经尝试了很多事情,但我不知道我现在应该做什么。 我的pom。xml 我试图构建包含所有依赖项的工件,但在运行(java-jar)时出现了一个错误: 编辑 我曾尝试使用Jlink构建一个包含JavaFX

  • 问题内容: 我正在尝试构建一个依赖于下载的外部jar的可执行jar程序。在我的项目中,我将它们包含在构建路径中,并且可以在eclipse中运行和调试。 当我尝试将其导出到jar中时,我可以运行该程序,但是当我尝试按下包含来自外部jar的函数调用和类的按钮时,则无法执行。我已经编辑了环境变量(Windows XP)CLASSPATH,以包括所有外部jar的路径,但是它不起作用。 需要注意的一点是,我