gpt4 book ai didi

java - Maven 程序集依赖于程序集?

转载 作者:行者123 更新时间:2023-11-30 08:06:46 25 4
gpt4 key购买 nike

我正在尝试创建一个依赖于内置程序集 jar-with-dependencies 输出的程序集。生成的程序集特定于架构。

例如我想创建一个 ZIP,其中包含 jar-with-dependencies 输出的 JAR 以及一个脚本文件和一个库目录。

我试过以下方法。在 pom.xml 文件中:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<descriptors>
<descriptor>src/main/assembly/linux64.xml</descriptor>
<descriptor>src/main/assembly/windows64.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>es.entrees.BoxOffice</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

然后是描述 rune 件。其中之一:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>linux64</id>
<formats>
<format>zip</format>
</formats>
<files>
<file>
<source>target/${project.artifactId}-${project.version}-jar-with-dependencies.jar</source>
<outputDirectory>/</outputDirectory>
</file>
</files>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
...
</depdendencySets>
</assembly>

但是自定义描述符首先运行,而 jar-with-dependencies 的输出还没有。

我应该使用子模块吗?

最佳答案

maven-assembly-plugin 需要执行 2 次:

  • 第一个绑定(bind)到 prepare-package 阶段,将创建 jar-with-dependencies
  • 另一个绑定(bind)到 package,将创建​​ zip 文件。

在构建生命周期中,prepare-package 阶段在 package 阶段之前运行,因此这确保了 JAR 在 ZIP 之前构建。此外,它还记录了创建 JAR 准备最终打包(即 ZIP 文件)这一事实。

示例 pom.xml 将是:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-jar-with-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>es.entrees.BoxOffice</mainClass>
</manifest>
</archive>
</configuration>
</execution>
<execution>
<id>make-zip</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/linux64.xml</descriptor>
<descriptor>src/main/assembly/windows64.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>

对于以下内容,使用 mvn clean install 运行 Maven 将正确创建 ZIP。

关于java - Maven 程序集依赖于程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34136038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com