gpt4 book ai didi

java - Maven 程序集 : add different version of the same artifact

转载 作者:太空狗 更新时间:2023-10-29 22:33:35 24 4
gpt4 key购买 nike

我使用 maven 程序集插件创建我的应用程序存档。我的 pom 中存在的所有依赖项都包含在内,没有任何问题。

现在我需要包含同一工件的两个或更多版本。

如果在我的 pom 中放置

<dependencies>
[...]
<dependency>
<groupId>db.test</groupId>
<artifactId>my-model</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>db.test</groupId>
<artifactId>my-model</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>

源依赖解析器删除旧版本,只有 1.1.0 打包在存档中

我尝试使用程序集 xml 描述 rune 件来包含 jar。而且我没有找到任何解决方案。

一个可能的解决方案是手动将所有需要的 model.jar 放在一个文件夹中,并告诉程序集将其复制到存档中。但我正在寻找更可配置的解决方案。

有什么想法吗?

最佳答案

我通过使用 maven-dependency-plugin 复制已解析的 pom 依赖项和其他 jar 找到了解决方案。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>runtime</includeScope>
</configuration>
</execution>
<execution>
<id>copy-model</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>my.test.pkg</groupId>
<artifactId>my-model</artifactId>
<classifier>server</classifier>
<version>1.0.3</version>
<type>jar</type>
</artifactItem>
<artifactItem>
<groupId>my.test.pkg</groupId>
<artifactId>my-model</artifactId>
<classifier>server</classifier>
<version>1.1.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>

现在我只需要在我的程序集 xml 中添加以下行

    <fileSet>
<directory>${project.build.directory}/lib</directory>
<outputDirectory>/lib</outputDirectory>
<filtered>false</filtered>
<includes>
<include>*.jar</include>
</includes>
<fileMode>0600</fileMode>
</fileSet>

关于java - Maven 程序集 : add different version of the same artifact,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312553/

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