分类
Java

Maven PKIX path building failed

使用maven编辑,下载包时报PKIX path building failed错误

在maven设置中加入参数

-Dmaven.multiModuleProjectDirectory=$MAVEN_HOME
-Dmaven.wagon.http.ssl.insecure=true
-Dmaven.wagon.http.ssl.allowall=true
-Dmaven.wagon.http.ssl.ignore.validity.dates=true

再执行编译,正常下载依懒jar

参考:

https://blog.csdn.net/jsp_will/article/details/87951082

https://stackoverflow.com/questions/23904298/pkix-path-building-failed

分类
Java

常用Maven插件配置

自己项目中常用的编译打包插件配置,MARK一下,后续新项目直接copy就好。

项目编译

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<configuration>
		<source>1.8</source>
		<target>1.8</target>
		<encoding>UTF-8</encoding>
	</configuration>
</plugin>

项目打包JAR

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<!--不打包资源文件-->
		<excludes>
			<exclude>*.**</exclude>
			<exclude>*/*.xml</exclude>
		</excludes>
		<archive>
			<manifest>
				<addClasspath>true</addClasspath>
				<!--MANIFEST.MF 中 Class-Path 加入前缀-->
				<classpathPrefix>lib/</classpathPrefix>
				<!--jar包不包含唯一版本标识-->
				<useUniqueVersions>false</useUniqueVersions>
				<!--指定入口类-->
				<mainClass>cn.payadd.merchant2.MerchantApplication</mainClass>
			</manifest>
			<manifestEntries>
				<!--MANIFEST.MF 中 Class-Path 加入资源文件目录-->
				<Class-Path>./resources/</Class-Path>
			</manifestEntries>
		</archive>
		<outputDirectory>${project.build.directory}</outputDirectory>
	</configuration>
</plugin>
分类
Java

Maven引入第三方Jar

不是每个第三方jar都要交给Maven库管理。在开发中,常常会引用第三方库,放在WEB-INF/lib下发布。在Maven中,可以用以下方法引入这些Jar管理。

<dependency>
	<groupId>cn.payadd.dao</groupId>
	<artifactId>dao</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/dao-20190516.jar</systemPath>
</dependency>

打成war包时在build中加入jar资源路径

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-war-plugin</artifactId>
	<configuration>
		<webResources>
			<resource>
				<directory>src/main/webapp/WEB-INF/lib/</directory>
				<targetPath>WEB-INF/lib/</targetPath>
				<includes>
					<include>**/*.jar</include>
				</includes>
			</resource>
		</webResources>
	</configuration>
</plugin>

参考: https://blog.csdn.net/zhuyongzhen1219/article/details/79217986

分类
Java

Spring Boot打包分离依赖JAR和配置文件

开发Spring Boot应用,用Spring Boot的Maven插件打包部署,会得到一个很大的JAR文件。该JAR文件包含了所有依赖JAR和配置文件。有时升级只需更新某个模块或修改某项配置,所以需要把它们分离出来。

在pom.xml添加如下插件,配置。

<plugins>
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<configuration>
			<source>1.8</source>
			<target>1.8</target>
			<encoding>UTF-8</encoding>
		</configuration>
	</plugin>
	<plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<configuration>
			<includes>
				<include>
					<groupId>null</groupId>
					<artifactId>null</artifactId>
				</include>
			</includes>
			<layout>JAR</layout>
			<addResources>true</addResources>
		</configuration>
		<executions>
			<execution>
				<goals>
					<goal>repackage</goal>
				</goals>
				<configuration>
					<!--配置jar包特殊标识 配置后,保留原文件,生成新文件 *-run.jar -->
					<!--配置jar包特殊标识 不配置,原文件命名为 *.jar.original,生成新文件 *.jar -->
					<!--<classifier>run</classifier>-->
				</configuration>
			</execution>
		</executions>
	</plugin>

	<!--打包jar-->
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-jar-plugin</artifactId>
		<configuration>
			<!--不打包资源文件-->
			<excludes>
				<exclude>*.**</exclude>
				<exclude>*/*.xml</exclude>
			</excludes>
			<archive>
				<manifest>
					<addClasspath>true</addClasspath>
					<!--MANIFEST.MF 中 Class-Path 加入前缀-->
					<classpathPrefix>lib/</classpathPrefix>
					<!--jar包不包含唯一版本标识-->
					<useUniqueVersions>false</useUniqueVersions>
					<!--指定入口类-->
					<mainClass>cn.payadd.admin.AdminApplication</mainClass>
				</manifest>
				<manifestEntries>
					<!--MANIFEST.MF 中 Class-Path 加入资源文件目录-->
					<Class-Path>./resources/</Class-Path>
				</manifestEntries>
			</archive>
			<outputDirectory>${project.build.directory}</outputDirectory>
		</configuration>
	</plugin>

	<!--拷贝依赖 copy-dependencies-->
	<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-dependency-plugin</artifactId>
		<executions>
			<execution>
				<id>copy-dependencies</id>
				<phase>package</phase>
				<goals>
					<goal>copy-dependencies</goal>
				</goals>
				<configuration>
					<outputDirectory>
						${project.build.directory}/lib/
					</outputDirectory>
				</configuration>
			</execution>
		</executions>
	</plugin>

	<!--拷贝资源文件 copy-resources-->
	<plugin>
		<artifactId>maven-resources-plugin</artifactId>
		<executions>
			<execution>
				<id>copy-resources</id>
				<phase>package</phase>
				<goals>
					<goal>copy-resources</goal>
				</goals>
				<configuration>
					<resources>
						<resource>
							<directory>src/main/resources</directory>
						</resource>
					</resources>
					<outputDirectory>${project.build.directory}/resources</outputDirectory>
				</configuration>
			</execution>
		</executions>
	</plugin>
</plugins>

执行maven,编译结果如图:

lib目录是依赖jar,resources是配置文件目录。

参考:
https://my.oschina.net/u/2329318/blog/1933393