我开始学习几个发行版的打包(目前是Cygwin和Debian)。
他们需要构建系统以允许树外构建(同义词源代码外构建):
http://wiki.debian.org/UpstreamGuide#Out-of-Tree_构建
要解决“哑”构建系统(例如cygport),建议使用lndir(来自xutils项目):
lndir ${S} ${B} cd {B} ...build-commands...
我阅读了mvn(1)手册页,但没有发现任何合适的内容。接下来,我只是尝试:
$ mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ... $ pwd /maven/simple $ ls my-app $ mvn -f my-app/pom.xml compile ... [INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ my-app --- [INFO] Compiling 1 source file to /maven/simple/my-app/target/classes
正如您所看到的,在我寻找避免这种情况的方法时,在源根层次结构中创建了目标目录。
是否可以使用maven进行树外构建?怎么做?
这可能很简单,就像有一个
<build>
<directory>/your/build/directory</directory>
</build>
在你的pom里。xml/your/build/directory
不需要在源代码树中,可以使用通常的${…}参数化
语法。
干杯
您可以这样做,让它在您的当前工作目录:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>Q13173063</artifactId>
<version>1.0-SNAPSHOT</version>
<name>${project.artifactId}-${project.version}</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<buildDir>${user.dir}</buildDir>
</properties>
<build>
<directory>${buildDir}</directory>
</build>
</project>
然后你可以发布
mvn -f my-app/pom.xml compile
它会给你当前工作目录中的类。
并轻松切换到另一个输出目录:
mvn -f my-app/pom.xml -DbuildDir=/tmp/build compile
问题内容: 我开始学习一些发行版(目前为Cygwin和Debian)的包装。 他们要求构建系统以允许 树外构建 (同义词 out-of-source build ): http://wiki.debian.org/UpstreamGuide#Out-of- Tree_Builds 要解决“哑”构建系统(例如 cygport), 建议使用 lndir (来自 xutils 项目): 我阅读了 mvn
问题内容: 我对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的路径,但是它不起作用。 需要注意的一点是,我