使用appassembler打包springboot项目时出现的主类无法找到问题

打包命令: mvn clean package appassembler:assemble

问题出现的原因:在pom.xml文件中使用parent的方式继承了springboot的模板

    <parent>
        <groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.4.2.RELEASE</version>
   </parent>  

解决方案:使用模板依赖的方式生成对springboot的依赖

<dependencyManagement>
	<dependencies>
		<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-dependencies</artifactId>
		<version>1.4.0.RELEASE</version>
		<type>pom</type>
		<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

下面提供一份完整的pom.xml文件可供参考

<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>com.yss</groupId>
	<artifactId>my-spring-demo</artifactId>
	<version>1.0.0</version>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>1.4.0.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
		<dependency> 
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>appassembler-maven-plugin</artifactId>
				<version>1.10</version>
				<configuration>
					<!-- 生成linux, windows两种平台的执行脚本 -->
					<platforms>
						<platform>windows</platform>
						<platform>unix</platform>
					</platforms>
					<!-- 根目录 -->
					<assembleDirectory>${project.build.directory}/product</assembleDirectory>
					<!-- 打包的jar,以及maven依赖的jar放到这个目录里面 -->
					<repositoryName>lib</repositoryName>
					<!-- 可执行脚本的目录 -->
					<binFolder>bin</binFolder>
					<!-- 配置文件的目标目录 -->
					<configurationDirectory>conf</configurationDirectory>
					<!-- 拷贝配置文件到上面的目录中 -->
					<copyConfigurationDirectory>true</copyConfigurationDirectory>
					<!-- 从哪里拷贝配置文件 (默认src/main/config) -->
					<configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
					<!-- lib目录中jar的存放规则,默认是${groupId}/${artifactId}的目录格式,flat表示直接把jar放到lib目录 -->
					<repositoryLayout>flat</repositoryLayout>

					<encoding>UTF-8</encoding>
					<logsDirectory>logs</logsDirectory>
					<tempDirectory>tmp</tempDirectory>
					<programs>
						<program>
							<id>product</id>
							<!-- 启动类 -->
							<mainClass>com.ysstech.TestApp</mainClass>
							<jvmSettings>
								<extraArguments>
									<extraArgument>-server</extraArgument>
									<extraArgument>-Xmx1G</extraArgument>
									<extraArgument>-Xms1G</extraArgument>
								</extraArguments>
							</jvmSettings>
						</program>
					</programs>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

猜你喜欢

转载自blog.csdn.net/callmev6/article/details/80792990