使用 shade im 将 uberjar 上传到存储库:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>myjar</shadedClassifierName>
</configuration>
</execution>
</executions>
</plugin>
然后我有另一个需要访问该 jar 的应用程序。我计划只在其他应用程序存储库中有一个 pom,并部署调用 mvn install 的脚本或任何在本地下载 uber jar 的脚本。我不知道如何只下载 uber jar。
blahblah-1.jar
当我运行 mvn install 时,这个 POM在目标文件夹中创建了一个。我想要的是让它将 uber jar 拉到特定目录中。我怎样才能在 pom 配置中做到这一点?我不想将特定的参数传递给 mvn-我希望配置在 pom 中,这样我就可以执行类似的操作mvn install
,并将 uber jar 依赖项下拉到正确的目录中。我想为所有设置使用 pom,因为这意味着我的 CI\CD 服务器只需要为其他应用程序调用相同的命令,并且设置将在 pom 中
<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>derps</groupId>
<artifactId>blahblah</artifactId>
<version>1</version>
<!-- Retrieve artifacts from internal repo -->
<repositories>
<repository>
<id>myrepo</id>
<name>my repo</name>
<url>https://myrepo</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>myjar</classifier>
</dependency>
</dependencies>
</project>
您可以使用 maven 依赖插件来复制特定文件夹中的依赖项:
https://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句