war和jar包的区别

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服务器和应用服务器。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值