jar包
java Archive java归档文件是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,java SE程序可以打包成jar包(J可以理解为java了)
介绍:jar文件是以ZIP文件格式为寄出的。不同点在于jar文件不仅用于压缩和发布,而且用于部署和封装库、组件和插件程序,并可被像编译器和JVVM这样的工具直接使用。例如你引用别人使用的jar包(别人写好的一些类和属性),jar包一般放在lib目录下
war包
war包是javaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。一个可以直接运行的web模块,通常用于网络,打包部署到容器种。以tomcat来说。将war包放在他的webapps目录下,然后启动Tomcat就会自动解压,就相当于发布了
介绍:war包是sun公司提出的一种web应用程序格式,与jar包类似,是很多文件的压缩包,war包种的文件按照一定的目录结构来组织,根据其根目录下包含的Html和jsp文件,或者包含着两种文件的目录,另外还有WEB-INF目录。通常再WEB-INFO目录下含有一个web.xml文件和classes目录,web。xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类,如javaBean
springboot打war包
目前我们熟知的SpringBoot 打包方式,一共分为两种,一种是打jar 包(内置tomcat方式,yml 里的配置参数生效包括端口,和servlet 的context-path),另外一种是打war 包部署到tomcat , 这种方式使用外部的tomcat ,此时端口号和路径要根据外部tomcat 配置,才能生效
修改配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<excludes>
<exclude>
<groupId>org.project.lombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
|
主启动类继承 SpringBootServletInitializer,再重写 configure 方法
@SpringBootApplication(exclude = MongoAutoConfiguration.class,scanBasePackages = {"com.dechnic"})
@EnableJpaRepositories(basePackages = "com.dechnic.common.repository")
public class AppMain extends SpringBootServletInitializer {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(AppMain.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 参数为当前springboot 启动类,构建新资源
return builder.sources(AppMain.class);
}
}
|
总结
JAR包通常用于存储库文件、可重用组件、插件等,适用于多种Java应用,包括桌面、服务器或嵌入式系统。而WAR包专门用于Java Web应用程序,包括Servlet、JSP、HTML和JavaScript等,主要部署于Web服务器和应用服务器。
310

被折叠的 条评论
为什么被折叠?



