我是靠谱客的博主 高大红酒,最近开发中收集的这篇文章主要介绍MAVEN插件打包SNAPSHOT包MANIFEST.MF中Class-Path带时间戳的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
当用maven的maven-jar-plugin插件打包依赖的SNAPSHOT的jar包就会表现为MANIFEST.MF中的Class-Path: lib/facede-user-1.0-20160512.093945-1.jar
但是打包到../lib/facede-user-1.0-SNAPSHOT.jar下面包,这样就会出现找不到类的情况。如下加上<useUniqueVersions>false</useUniqueVersions>就可以
强制的把MANIFEST.MF中的Class-Path: lib/facede-user-1.0-20160512.093945-1.jar转化成Class-Path:/lib/facede-user-1.0-SNAPSHOT.jar
<build>
<!-- 如果不加下面的插件则依赖包打包插件会报以下错误 -->
<!-- maven-dependency-plugin (goals "copy-dependencies", "unpack") is not
supported by m2e. -->
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
<goal>unpack</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!-- 把配置文件单独打包到指定目录 -->
<!-- <resources> <resource> <directory>src/main/resources</directory> <targetPath>${project.build.directory}/config</targetPath>
</resource> </resources> -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.xxxx.service.user.startup.DubboStart</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!-- 如果不加这一句则依赖的SNAPSHOT的jar包就会表现为MANIFEST.MF中的
Class-Path: lib/facede-user-1.0-20160512.093945-1.jar
但是打包到../lib/facede-user-1.0-SNAPSHOT.jar下面包,这样就会出现找不到类的情况 -->
<useUniqueVersions>false</useUniqueVersions>
</manifest>
</archive>
<classesDirectory>
</classesDirectory>
</configuration>
</plugin>
<!-- 把依赖的jar打包到指定目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
最后
以上就是高大红酒为你收集整理的MAVEN插件打包SNAPSHOT包MANIFEST.MF中Class-Path带时间戳的问题的全部内容,希望文章能够帮你解决MAVEN插件打包SNAPSHOT包MANIFEST.MF中Class-Path带时间戳的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复