jar包和war包的打包规范

合集下载

Maven命令-打包的技巧

Maven命令-打包的技巧

“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包,它有自定义的格式,方便用户直接解压后就在命令行使用。

作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包自然不再话下,略微复杂的自定义打包格式也必须支持,本文就介绍一些常用的打包案例以及相关的实现方式,除了前面提到的一些包以外,你还能看到如何生成源码包、Javadoc包、以及从命令行可直接运行的CLI包。

Packaging的含义任何一个Maven项目都需要定义POM元素packaging(如果不写则默认值为jar)。

顾名思义,该元素决定了项目的打包方式。

实际的情形中,如果你不声明该元素,Maven会帮你生成一个JAR包;如果你定义该元素的值为war,那你会得到一个WAR包;如果定义其值为POM(比如是一个父模块),那什么包都不会生成。

除此之外,Maven默认还支持一些其他的流行打包格式,例如ejb3和ear。

你不需要了解具体的打包细节,你所需要做的就是告诉Maven,”我是个什么类型的项目“,这就是约定优于配置的力量。

为了更好的理解Maven的默认打包方式,我们不妨来看看简单的声明背后发生了什么,对一个jar项目执行mvn package操作,会看到如下的输出:[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ git-demo --- [INFO] Building jar:/home/juven/git_juven/git-demo/target/git-demo-1.2-SNAPSHOT.jar相比之下,对一个war项目执行mvn package操作,输出是这样的:[INFO] --- maven-war-plugin:2.1:war (default-war) @ webapp-demo --- [INFO] Packaging webapp[INFO] Assembling webapp [webapp-demo] in[/home/juven/git_juven/webapp-demo/target/webapp-demo-1.0-SNAPSHOT] [INFO] Processing war project[INFO] Copying webapp resources[/home/juven/git_juven/webapp-demo/src/main/webapp][INFO] Webapp assembled in [90 msecs][INFO] Building war:/home/juven/git_juven/webapp-demo/target/webapp-demo-1.0-SNAPSHOT.war对应于同样的package生命周期阶段,Maven为jar项目调用了maven-jar-plugin,为war项目调用了maven-war-plugin,换言之,packaging 直接影响Maven的构建生命周期。

WAR包的制作和解压过程指导

WAR包的制作和解压过程指导

WAR包的制作和解压过程指导目录1 说明 (1)2 WAR包的制作 (2)2.1 MyEclipse下制作War包 (2)2.2 JAR程序打WAR包 (4)2.3 Ant工具打WAR包 (6)3 WAR包的更新 (9)4 WAR包的解压 (11)4.1 WinRAR程序解压 (11)4.2 JAR程序解压 (12)1说明目前公司的很多测试环境和实施环境都采用WAR包部署的形式,所以,要求相关人员都要掌握WAR包使用。

配置人员要完全掌握WAR包的制作、使用和更新,WAR的使用可以参考《数据中心系统weblogic安装部署说明》等文档进行,本文主要讲解WAR的制作和更新过程。

鉴于在MyEclipse下进行WAR包制作均存在一定的局限性,而JDK下的JAR 程序和Ant都具备打WAR包的功能,所以,本文侧重于使用JAR程序和Ant工具进行WAR包制作和解压的说明,对于MyEclipse下的使用,则提供一般性的指导方法。

关于进入命令行窗口的说明:本文档中提供的操作多次使用到命令行窗口。

在Windows下,打开“开始 运行”,输入“cmd”后回车,即可出现如下图所示的窗口,此即命令行窗口。

详细过程见文章正文2WAR包的制作WAR包,其实是将程序进行打包后形成的一种压缩包,在目前的系统、应用中使用较为普遍。

其制作过程一般可以通过MyEclipse自带的导出功能实现,也可以使用jdk中的jar程序完成,ant也提供了打WAR包的办法,以下分别进行介绍。

2.1MyEclipse下制作War包首先需要注意的是,MyEclipse只能对Web Project类型的工程进行WAR包制作,对于我们常用的Java Project则无法进行WAR包制作。

打开MyEclipse,在【Package Explorer】中选中需要压缩的项目,点击工具栏中的“File->Export…”,在弹出的【Export】对话框上,点击选中树状图中的“J2EE->WAR file (MyEclipse)”,点击【Next >】继续,如图2.1所示:图2.1 选择导出类型在【WAR Export】对话框上选择需要压缩的项目名称,点击【Browse…】,在弹出的【另存为】对话框上选择WAR包保存的路径和名称,确认后点击【Finish】,开始进行压缩。

java一键部署jar包和war包

java一键部署jar包和war包

java⼀键部署jar包和war包⽬录java ⼀键部署 jar 包和 war 包⼀、创建打包命令 gateway-package.bat⼆、创建启动⽂件 gateway.xml三、⼀键打包并部署脚本 gateway-deploy.bat ⽂件内容四、双击打包部署 bat ⽂件 gateway-deploy.bat五、执⾏ vue 打包并且上传部署六、安装 7z 压缩⼯具并配置系统环境变量七、创建上传部署⽂件 webConfig.xml九、双击执⾏部署 vue-deploy.batjava ⼀键部署 jar 包和 war 包⼀、创建打包命令 gateway-package.bat@echo offcd /d "F:\uincall-cloud-service\uin-api-alibaba\gateway\"gradle build bootJar@echo off 关闭命令回显,当不需要 dos 命令⼀⾏⼀⾏在命令窗⼝中显⽰的时候使⽤,@echo on 显⽰命令回显例如:当为 @echo on 会显⽰执⾏的命令@echo ontitle Acolor 01echo %date%pause当为 @echo off 并不会执⾏ title A 和 color 01 命令echo 是输⼊提⽰信息pause 是暂停执⾏执⾏命令,按下任意键后会继续执⾏,pause 会提⽰“请按任意键继续...”当执⾏的 bat 不在项⽬⽬录时,需要进⼊到项⽬⽬录执⾏打包命令,需要使⽤ /d 命令,后⾯是进⼊的⽬录gradle build bootJar 是执⾏ gradle 打包命令,如果是 maven ⼯程则使⽤ maven 打包命令,例如:mvn clean package -Dmaven.test.skip=true创建项⽬打包并执⾏到上传到服务器,并且结束之前项⽬部署的进程,并启动新的部署命令⼆、创建启动⽂件 gateway.xml<?xml version="1.0" encoding="utf-8" ?><config><threadPoolSize default="5">3</threadPoolSize><!--线程池⼤⼩,如果上传服务器多的话可以调⼤,默认5个线程--><servers><server><!-- 服务器 ip --><host>1.0.0.0</host><!-- 服务器⽤户名 --><userName>root</userName><!-- 服务器密码 --><password>password</password><!-- 上传的⽂件,可以有多个 --><uploads><upload><!-- 上传的包路径 --><local>F:\uincall-cloud-service\uin-api-alibaba\gateway\build\libs\gateway-1.0.0.jar</local><!-- 上传到服务器的路径 --><remote>/root/data/callcenter</remote></upload></uploads><!-- 需要执⾏的命令,可以有多个 --><commands><!-- 结束之前部署的进程 --><command><![CDATA[source /etc/profile; ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9]]></command><!-- 重新部署新上传的包 --><command><![CDATA[source /etc/profile; nohup java -jar /root/data/callcenter/gateway-1.0.0.jar >> /root/data/callcenter/gateway.log 2>&1 &]]></command> </commands></server></servers></config>ps -ef | grep gateway-1.0.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 查询正在部署的项⽬进⾏并且杀死ps -ef | grep gateway-1.0.0.jar 是查询进程grep -v grep 过滤包含 grep 的进程⾏,然后再杀掉剩下的进程awk '{print $2}' 提取找到的进程⾏记录中第⼆列的参数,也就是正在执⾏项⽬的进程号xargs kill -9 把前⾯的参数都传递给后⾯的命令 kill -9三、⼀键打包并部署脚本 gateway-deploy.bat ⽂件内容call gateway-package.batjava -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\gateway.xmlpausecall gateway-package.bat 是执⾏上⾯的项⽬打包的 gateway-package.bat ⽂件,call 作⽤是可以在当前批处理执⾏前调⽤另⼀个批处理⽂件,这⾥的意思就是先打包在上传⾄服务器并且部署java -jar F:\uincall-cloud-service\test-deploy\javaauto.jar 可执⾏⽂件 jar 包,负责执⾏上传部署指令F:\uincall-cloud-service\test-deploy\gateway.xml ,上传部署的命令都写在 gateway.xml 中注意:这⾥要执⾏的⽂件都需使⽤绝对路径,哪怕在⼀个⽂件加⾥四、双击打包部署 bat ⽂件 gateway-deploy.bat成功上传并且部署成功!!五、执⾏ vue 打包并且上传部署创建 vue 打包 bat ⽂件 vue-package.bat@echo offecho 开始打包......cd /d "F:\uincall-cloud-service\\"npm run buildecho 打包完毕 successF:\uincall-cloud-service\" 是⼯程根⽬录六、安装 7z 压缩⼯具并配置系统环境变量创建 7z 压缩 vue 打包后的 bat ⽂件 zip.bat@echo offset CALLCENTER_PATH=F:\uincall-cloud-service\\dist\*set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tarecho 开始压缩 callcenter vue7z a -r %ZIP_PATH% %CALLCENTER_PATH%set CALLCENTER_PATH=F:\uincall-cloud-service\\dist* vue 打包后的⽂件夹⽬录,打包后的⽂件都在此⽬录下set ZIP_PATH=F:\uincall-cloud-service\deploy\callcenter.tar 设置打包后的⽂件名和格式7z a -r %ZIP_PATH% %CALLCENTER_PATH%,7z:使⽤ 7z 压缩,a:是添加⽂件到压缩⽂件中,-r:包括⼦⽬录,其他是引⽤上⾯定义的变量,也就是打包后的格式和需要打包的⽂件所在⽬录七、创建上传部署⽂件 webConfig.xml<config><threadPoolSize default="5">3</threadPoolSize><!--线程池⼤⼩,如果上传服务器多的话可以调⼤,默认5个线程--><servers><server><!-- 服务器 ip --><host>1.0.0.0</host><!-- 服务器⽤户名 --><userName>root</userName><!-- 服务器密码 --><password>password</password><!-- 上传的⽂件,可以有多个 --><uploads><upload><!-- 上传的⽂件 --><local>F:\uincall-cloud-service\deploy\callcenter.tar</local><!-- 上传到服务器的⽬录 --><remote>/root/data/callcenter/web</remote></upload></uploads><!-- 上传成功后执⾏的命令 --><commands><!-- 添加 777 权限 --><command><![CDATA[source /etc/profile; chmod 777 /root/data/callcenter/web/callcenter.tar]]></command><!-- 解压 -C 表⽰创建新的档案⽂件,会解压到新的⽬录,默认解压到根⽬录 / --><command><![CDATA[source /etc/profile; tar -xvf /root/data/callcenter/web/callcenter.tar -C /root/data/callcenter/web]]></command><!-- 解压完删除压缩⽂件 --><command><![CDATA[source /etc/profile; rm -rf /root/data/callcenter/web/callcenter.tar]]></command><!-- 刷新 nginx --><command><![CDATA[source /etc/profile; nginx -s reload]]></command></commands></server></servers></config>创建 vue 打包部署 bat ⽂件 vue-deploy.bat,分别执⾏上⾯创建打包 vue-package.bat 压缩 zip.bat 上传部署命令webConfig.cmlcall F:\uincall-cloud-service\test-deploy\vue-package.batcall F:\uincall-cloud-service\test-deploy\zip.batjava -jar F:\uincall-cloud-service\test-deploy\javaauto.jar F:\uincall-cloud-service\test-deploy\webConfig.xmlecho 上传并解压完毕pause九、双击执⾏部署 vue-deploy.bat成功上传并解压以上就是java ⼀键部署 jar 包和 war 包的详细内容,更多关于java 部署 jar 包 war 包的资料请关注其它相关⽂章!,希望⼤家以后多多⽀持!。

jar包和war包的打包规范

jar包和war包的打包规范

CMD 模式下实现jar打包注意包名以及manifest.mf文件每一个冒号有空格最后一行为空1、编译java文件2、写manifest.mf文件Manifest-Version: 1.0Main-Class:<空格>package.class//指定主类,目的是如果有main函数能够直接运行Class-Path: 包含的其他jar包中间空格间隔如果有多个jar包且不能为jar包中的jar包。

是需要在包里面包含的本地包lib/edd/.<换行>最后一行为空行保存注意:没有添加主清单属性则不能够直接通过java –jar 包名.jar运行文件Cmd下执行jar –cvfm name.jar manifest.mf 文件.class这种情况是打包没有package名的.class文件。

jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名jar cvfm classes.jar mymanifest.mf -C foo/ . 文件夹下所有类打包foo为文件夹。

这种是打包有包名的.class。

应为这种情况下编译会产生cn.mypackage的情况因此在manifest文件中会写出,而且也需啊把包的文件夹放在与manifest同一个位置再打包运行即可运行即是java –jar name.jar;这种情况必须要有manifest文件。

不然不能执行main函数含有多个java编译文件,属于同一个包的打包。

也是上诉方法,将其编译到一个包文件夹中,然后编译运行即可。

Jar 包的导入(CMD下使用)只需要将包放入到classpath对应的文件夹下,然后使用import cn.ddd.class即可。

如下:import cn.mypackage.Testjar;//但是这种情况下用类需要把全名写出来不然不能访问,也就是说import cn.mypackage.*;写法是错误的public class testcout{public static void main(String[] args){Testjar t = new Testjar();t.display();}}运行输出:Eclipse 下实现jar包的打包Eclipse的jar包打包同样需要多个过程1、选择包右键选择导出jarfile2、3、选择要导出的文件4、5、选择自己的manifest或者生成的manifest选择主类,实现直接运行。

java项目打包成jar包和war包有什么区别

java项目打包成jar包和war包有什么区别

java项目打包成jar包和war包有什么区别在Java中,将项目打包成JAR(Java Archive)包和WAR(Web Archive)包是常见的部署方式。

这两种包的主要区别在于它们的用途和部署环境。

1. JAR包(Java Archive):JAR包是一种用于打包Java类、资源文件和库文件的归档文件格式。

JAR包主要用于打包和分发独立的Java应用程序、Java库和组件。

JAR包可以包含Java代码、字节码、配置文件、资源文件和其他依赖的类库文件。

JAR包可以通过Java虚拟机(JVM)直接执行,因此适用于命令行工具、桌面应用程序和独立的Java应用。

2. WAR包(Web Archive):WAR包是一种用于打包和分发Web应用程序的归档文件格式。

WAR包主要用于部署Java Web应用程序,例如基于Java的Web应用框架(如Java Servlet、JavaServer Pages(JSP)和JavaServer Faces (JSF))。

WAR包可以包含Web应用程序的所有内容,包括Java类、JSP页面、HTML、CSS、JavaScript、配置文件、静态资源(图像、样式表等)以及依赖的类库文件。

WAR包可以部署到Java Web服务器(如Apache Tomcat、Jetty、WebLogic和WebSphere)中,以提供Web应用程序的服务。

总结:JAR包主要用于独立的Java应用程序和库的分发,而WAR包主要用于Java Web应用程序的部署。

选择JAR包还是WAR包取决于你的项目类型和部署需求。

如果你开发的是一个独立的Java应用程序,你可以将其打包为JAR包。

如果你开发的是一个Java Web应用程序,你应该将其打包为WAR包,并将其部署到Java Web服务器中。

Eclipse中打包maven项目-war包方式

Eclipse中打包maven项目-war包方式

Eclipse中打包maven项⽬-war包⽅式IntelliJ IDEA打包成war(包括maven项⽬)⾸先要在maven项⽬中的pom.XML中配置好需要的配置:1 <project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">2 <modelVersion>4.0.0</modelVersion>3 <groupId>com.abc.java</groupId>4 <artifactId>coressm</artifactId>5 <version>0.0.1-SNAPSHOT</version>6 <packaging>war</packaging>1 <!-- https:///artifact/org.apache.maven.plugins/maven-war-plugin -->2 <dependency>3 <groupId>org.apache.maven.plugins</groupId>4 <artifactId>maven-war-plugin</artifactId>5 <version>3.0.0</version>6 </dependency><!-- build #s --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <!-- 对丢失web.xml检测机制进⾏忽略, Dynamic Web Module 3.0 ⼯程时代不需要web.xml⽂件注册相关内容的,所以⼯程默认不⽣成web.xml。

Maven将一个工程打包为多个包(包含war和jar可全部上传至nexus)

Maven将一个工程打包为多个包(包含war和jar可全部上传至nexus)

一个工程打包为多个包(WAR 和JAR)1.修改工程的主pom.xml文件将<packaging>war</packaging>中的war或者jar修改为pom<groupId>ndwind.hip</groupId><artifactId>hip-service</artifactId><packaging>pom</packaging><version>1.0.0</version><name>Maven Webapp Archetype</name><url></url>2.在工程中添加需要打包的目录要打几个包就添加几个目录,现在(本身是war工程)举例打包2个jar 和1个war,现在建立三个目录文件夹client 、server 、hipwar3.引入打包目录到主pom.xml文件修改主pom.xml文件添加配置<modules><module>server</module><module>client</module><module>hipwar</module></modules>例如工程配置:4.添加pom.xml文件4.1在client 、server、hipwar三个目录中分别添加pom.xml 文件每个pom文件都要引入主pom文件4.2每个pom文件定义自己的<artifactId>client</artifactId> 4.2.1打包Jar文件配置文件添加如下配置<artifactId>dy-service-model</artifactId><build><sourceDirectory>../src</sourceDirectory><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><configuration><includes><!—自定义打包目录--><include>**/dynamic/**</include><include>**/model/**</include><include>**/query/**</include><include>**/utils/**</include></includes></configuration></plugin></plugins></build>4.2.2打包war文件,添加配置如下:<artifactId>hip-services</artifactId><packaging>war</packaging><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><warName>hip-services</warName><webResources><webResource><directory>../src/main/webapp/WEB-INF</directory><includes><include>web.xml</include></includes><targetPath>WEB-INF</targetPath><filtering>true</filtering></webResource></webResources></configuration></plugin></plugins></build>4.2.3整个工程结构如下图:5打包工程注意:本地必须安装maven,并修改settings.xml文件指定的nexus服务器URL和依赖库5.1 cmd命令行进入工程所在目录5.2 执行mvn clean清理工程目录5.3再执行mvn package 进行打包完成打包可以查看打包出来的文件,如下图:完成打包命令,5.4上传打包文件到服务器则执行命令mvn deploy 会将打包好的文件全部上传到nexus服务器上,此时可以在别的工程添加jar依赖了。

Linux下打包压缩war、解压war包和jar命令

Linux下打包压缩war、解压war包和jar命令

Linux下打包压缩war、解压war包和jar命令情景:把project_a⽂件夹下的⽂件打包成project.war 1. 打包 jar -cvf project.war /project_a 说明: -c 创建war包 -v 显⽰过程信息 -f 指定 JAR ⽂件名,通常这个参数是必须的 -M 不产⽣所有项的清单(MANIFEST〕⽂件,此参数会忽略 -m 参数 -0 这个是阿拉伯数字,只打包不压缩的意思 2. 解压 jar -xvf project.war 注:解压到当前⽬录 jar 命令详解 使⽤不带任何的 jar 命令我们可以看到 jar 命令的⽤法如下: jar {ctxu}[vfm0M] [jar-⽂件] [manifest-⽂件] [-C ⽬录] ⽂件名 ... 其中 {ctxu} 是 jar 命令的⼦命令,每次 jar 命令只能包含 ctxu 中的⼀个,它们分别表⽰: -c 创建新的 JAR ⽂件包 -t 列出 JAR ⽂件包的内容列表 -x 展开 JAR ⽂件包的指定⽂件或者所有⽂件 -u 更新已存在的 JAR ⽂件包 (添加⽂件到 JAR ⽂件包中) 特别注意,在参数的下达中, c/x/t/u 仅能存在⼀个!不可同时存在! 因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩? -v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程! -f 指定 JAR ⽂件名,通常这个参数是必须的 请留意,在 f 之后要⽴即接档名喔!不要再加参数! 例如使⽤『 tar -zcvfP tfile sfile』就是错误的写法,要写成 『 tar -zcvPf tfile sfile』才对喔! -p :使⽤原⽂件的原来属性(属性不会依据使⽤者⽽变) -P :可以使⽤绝对路径来压缩! -N :⽐后⾯接的⽇期(yyyy/mm/dd)还要新的才会被打包进新建的⽂件中! –exclude FILE:在压缩的过程中,不要将 FILE 打包! -m 指定需要包含的 MANIFEST 清单⽂件 -0 只存储,不压缩,这样产⽣的 JAR ⽂件包会⽐不⽤该参数产⽣的体积⼤,但速度更快 -M 不产⽣所有项的清单(MANIFEST〕⽂件,此参数会忽略 -m 参数 [jar-⽂件] 即需要⽣成、查看、更新或者解开的 JAR ⽂件包,它是 -f 参数的附属参数 [manifest-⽂件] 即 MANIFEST 清单⽂件,它是 -m 参数的附属参数 [-C ⽬录] 表⽰转到指定⽬录下去执⾏这个 jar 命令的操作。

maven packaging的几种形式

maven packaging的几种形式

maven packaging的几种形式
Maven是一个流行的项目管理和构建工具,它可以将Java项目打包成不同的形式以便于部署和分发。

在Maven中,有几种常见的打包形式,包括:
1. JAR包:JAR(Java Archive)是一种用于打包Java类、资源和元数据的格式。

使用Maven打包JAR包非常简单,只需要在pom.xml中声明打包类型为“jar”,然后运行“mvn package”命令即可。

2. WAR包:WAR(Web Archive)是一种用于打包Web应用程序的格式。

它包含了Web应用程序的所有文件,包括JSP、HTML、CSS、JavaScript、Servlet类等。

使用Maven打包WAR包也很简单,只需要在pom.xml中声明打包类型为“war”,然后运行“mvn package”命令即可。

3. EAR包:EAR(Enterprise Archive)是一种用于打包J2EE 企业级应用程序的格式。

它可以包含多个模块,如EJB模块、Web模块、JAR模块等。

使用Maven打包EAR包需要在pom.xml中声明打包类型为“ear”,并指定每个模块的打包方式,然后运行“mvn package”命令即可。

4. POM包:POM(Project Object Model)是Maven项目的元数据文件,包含了项目的依赖、插件、构建配置等信息。

使用Maven打包POM包非常简单,只需要在pom.xml中声明打包类型为“pom”,然后运行“mvn package”命令即可。

以上就是Maven常见的打包形式,不同的项目需要选择适合自己的打包形式,以便于项目的部署和分发。

使用IDEA打包项目(jar包和war包)

使用IDEA打包项目(jar包和war包)

使⽤IDEA打包项⽬(jar包和war包)介绍jar包假设将整个项⽬视为⼀堵墙,那么jar包就是砖块,将写好的类进⾏打包的过程就是烧制砖块的过程。

jar包是class⽂件和部署⽂件的归档,不包含静态⽂件,它不仅⽤于压缩和发布,还⽤于部署和封装库、组件和插件程序,并可被像编译器和 JVM 之类的⼯具直接使⽤,jar包在产品开发阶段较为常⽤war包war包是将项⽬的所有东西都打包,解压后项⽬可以直接运⾏。

将war包放到tomcat\webapps\⽬录下,启动tomcat,war包就会⾃动解压,也就是将项⽬发布了,war包中包括class⽂件、依赖包、配置⽂件、HTML、jps、图像⽂件等,war包在产品测试阶段和发布阶段较为常⽤⽂件配置打开pom.xml⽂件,添加packaging标签,此标签决定了打jar包还是war包使⽤IDEA打jar包先在pom.xml⽂件中添加或修改packaging标签,如图在IDEA界⾯,点击右侧【Maven】,展开【Lifecycle】,点击【clean】,最后点击【package】或者【install】clean⽬的是清除target⽂件,将之前打的包删除,不删除也可以打包,按照惯例都会clean⼀下查看控制台输出,出现“BUILD SUCCESS”说明打包成功,右侧项⽬菜单会出现target⽂件,jar包就在此⽂件,可以查看路径找到该jar包jar包⽣成将jar包上传到服务器上,启动后就可以访问啦使⽤IDEA打war包与打jar包步骤相同先在pom.xml⽂件中添加或修改packaging标签在IDEA界⾯,点击右侧【Maven】,展开【Lifecycle】,点击【clean】,最后点击【package】或者【install】将war包上传到服务器并运作同样可以访问到端⼝修改更改项⽬端⼝是在【application.properties】中添加端⼝号。

打war包命令行方式

打war包命令行方式

首先到完全路径下,命令jar –cvf XXXX.war XXXX
Jar –cvf ROOT.war ROOT
环境变量要设置好
命令行方式
前提是你机器中安装了JDK,并且在环境变量path中添加了jdk的bin目录进去。

可以通过jar命令来打包war和jar包,如下jar命令使用规范
下面是使用示例
这个示例是打包class目录下的com目录,如果你想打包class目录下的所有内容可以使用
Java代码
jar -cvf test.jar *
jar -cvf test.jar *
打war包也是一样的用法只是你打包的目录应该是web应用的根目录。

war包用winrar打开目录是这样的
大家可以根据自己的需求配置使用jar命令的参数。

使用工具JBuilder对web项目可以自动生成war包在web模块上单击右键选择properties
如下图进行设置,这样在rebuild项目和web模块的时候都会在项目根目录下产生一个war文件。

使用工具eclipse导出war包在项目上点击鼠标右键
如下图
选择war点击下一步
选择要导出的项目和war的存放路径,点击完成。

导出jar文件方法类似,请大家自己研究一下。

是我自己懒了!。

maven的三种项目打包方式----jar,war,pom

maven的三种项目打包方式----jar,war,pom

maven的三种项⽬打包⽅式----jar,war,pom
1.pom⼯程:
**⽤在⽗级⼯程或聚合⼯程中。

⽤来做jar包的版本控制。

必须指明这个聚合⼯程的打包⽅式为pom(个⼈觉得⼀般会在整个项⽬的⽗模块⾥使⽤pom打包⽅式)
2.war⼯程:
将会打包成war,发布在服务器上的⼯程。

如⽹站或服务。

在SpringBoot 项⽬中,只要我们在依赖中添加了web的启动器,我们就不需要添加打包⽅式了,maven会⾃动帮助我们识别这个项⽬为war⼯程。

不是springBoot项⽬的话,则需要指明这个项⽬为⼀个web⼯程。

(⽤在web项⽬上)
**3.jar⼯程:
**将会打包成jar⽤作jar包使⽤。

在项⽬中,不指明的话,默认的就是打包成jar⼯程,我们也可以添加指明打包⽅式为jar。

(打成jar包的项⽬⼀般存放⼀些其他⼯程都会使⽤的类,⼯具类。

我们可以在其他⼯程的pom⽂件中去引⽤它,和引⽤别的jar包没什么区别。


转⾃并总结。

SpringBoot工程搭建打包、启动jar包和war包的教程图文详解

SpringBoot工程搭建打包、启动jar包和war包的教程图文详解

SpringBoot⼯程搭建打包、启动jar包和war包的教程图⽂详解⼯程搭建1.File->new->project;2.选择“Spring Initializr”,点击next;(jdk1.8默认即可)3.完善项⽬信息,组名可不做修改,项⽬名可做修改;最终建的项⽬名为:test,src->main->java下包名会是:com->example->test;点击next;4.Web下勾选Spring Web Start,(⽹上创建springboot项⽬多是勾选Web选项,⽽较⾼版本的Springboot没有此选项,勾选Spring Web Start即可,2.1.8版本是Spring Web);Template Englines勾选Thymeleaf;SQL勾选:MySQL Driver,JDBC API 和 MyBatis Framework三项;点击next;5.选择项⽬路径,点击finish;打开新的窗⼝;6.刚创建好的项⽬⽬录结构其他与springmvc写法⼀致打包、启动jar包1.maven:clean 清除缓存2.maven:package 打jar包3.复制出jar包4.win+r cmd 进⼊命令符窗⼝5.进⼊jar包放置的位置: cd desktop6.启动jar包:java -jar springboot1-0.0.1-SNAPSHOT.jar7.在浏览器输⼊访问路径打包、启动war包1.maven:clean 清除缓存2.maven:package 打war包3.复制出war包放到tomcat–>webapps⽬录下4.打开tomcat–>bin–>startup.bat ⾃动解压war包项⽬5.在浏览器输⼊访问路径,进⼊项⽬总结到此这篇关于SpringBoot⼯程搭建打包、启动jar包和war包的教程图⽂详解的⽂章就介绍到这了,更多相关SpringBoot打包、启动jar包和war包内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。

maven packaging 参数-概述说明以及解释

maven packaging 参数-概述说明以及解释

maven packaging 参数-概述说明以及解释1.引言1.1 概述Maven是一个流行的项目管理工具,可以管理和构建Java项目。

在使用Maven构建项目时,可以通过配置不同的参数来定制构建过程。

其中,Packaging参数是一个重要的参数,用于指定项目打包的方式,即生成的构建产物的类型。

通过设置Packaging参数,可以指定项目生成的构建产物的类型,例如jar、war、ear等。

不同的项目类型对应不同的打包方式,以便项目能够被正确部署和运行。

在本文中,我们将介绍Maven Packaging参数的作用、配置方式以及示例,帮助读者更好地理解和应用这一参数。

1.2 文章结构本文将分为三个部分来讨论Maven Packaging参数。

首先,在引言部分,我们将简要介绍本文的概述、文章结构和目的。

其次,在正文部分,我们将详细介绍Maven Packaging参数的含义及其在项目中的重要性,然后讨论Maven Packaging参数的配置方式,并且提供一些示例来帮助读者更好地理解。

最后,在结论部分,我们将总结本文的主要内容,提出一些应用建议,并展望Maven Packaging参数在未来的发展趋势。

通过本文的阐述,读者将能够更深入地了解和应用Maven Packaging参数,从而提高项目的可维护性和扩展性。

1.3 目的在本文中,我们将探讨Maven Packaging参数的作用和意义。

Maven Packaging参数是用于配置打包方式和类型的重要参数,它可以帮助开发者在构建项目时指定生成的目标文件类型,以便后续部署和发布。

通过深入了解Maven Packaging参数的使用和配置方式,我们可以更加高效地管理项目的构建过程,提高开发效率并确保项目的可靠性和稳定性。

因此,本文的目的是帮助读者全面了解Maven Packaging参数,掌握其使用方法,并在实际项目中灵活应用,从而提升软件开发的质量和效率。

浅谈maven的jar包和war包区别以及打包方法

浅谈maven的jar包和war包区别以及打包方法

浅谈maven的jar包和war包区别以及打包⽅法jar⽂件包括java普通类、资源⽂件和普通⽂件,在maven中即是打包src/main/java和src/main/resources资源⽂件夹下的所有⽂件。

在打包的时候会⾃动⽣成MATA-INF⽂件夹,⽤于存储maven的pom信息和MANIFEST.MF⽂件。

例如:war⽂件包含全部的web应⽤程序,即所有的java类,配置信息和jsp、js等静态资源。

但是需要注意war引⽤war的时候会将应⽤war的资源全部拷贝到当前war的相同⽂件下,重名的⽂件会被替换。

例如:war包依赖:<dependency><groupId>com.my.module</groupId><artifactId>module1</artifactId><version>0.0.1-SNAPSHOT</version><type>war</type> //根据这个来看打什么包</dependency>打成包的位置,这是我直接项⽬右键->run as->maven clean 完了后 maven install引⾔:⼤家平时肯定都有⽤过全⽂检索⼯具,最常⽤的百度⾕歌就是其中的典型。

如果⾃⼰能够做⼀个那是不是想想就逼格满满呢。

Apache就为我们提供了这样⼀个框架,以下就是在实际开发中加⼊Lucene的⼀个⼩Demo。

这个项⽬是基于之前使⽤IDEA搭建的SSM的基础上进⾏增加的,编写Lucene⼯具类这个⼯具类中的具体代码我就不单独提出来说了,每个关键的地⽅我都写有注释,不清楚的再讨论。

这篇浅谈maven的jar包和war包区别以及打包⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

jar包和war包的区别

jar包和war包的区别

jar包和war包的区别
⼀、概念
1. jar包:JAR包是类的归档⽂件,JAR ⽂件格式以流⾏的 ZIP ⽂件格式为基础。

与 ZIP ⽂件不同的是,JAR ⽂件不仅⽤于压缩和发布,⽽且还
⽤于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的⼯具直接使⽤。

2. war包:war包是JavaWeb程序打的包,war包⾥⾯包括写的代码编译成的class⽂件,依赖的包,配置⽂件,所有的⽹站页⾯,包括html,jsp等
等。

⼀个war包可以理解为是⼀个web项⽬,⾥⾯是项⽬的所有东西。

⼆、⽬录结构
1. jar包⾥的com⾥放的就是class⽂件,配置⽂件,但是没有静态资源的⽂件,⼤多数 JAR ⽂件包含⼀个 META-INF ⽬录,它⽤于存储包和扩展的
配置数据,如安全性和版本信息。

2. ⽽war包⾥的WEB-INF⾥放的class⽂件和配置⽂件,META-INF和jar包作⽤⼀样,war包⾥还包含静态资源的⽂件
三、总结起来就是有两点不同:
1. war包和项⽬的⽂件结构保持⼀致,jar包则不⼀样。

2. jar包⾥没有静态资源的⽂件(index.jsp)
四、部署项⽬的区别
1. 部署普通的spring项⽬⽤war包就可以,部署springboot项⽬⽤jar包就可以,因为springboot内置tomcat。

java war操作

java war操作

Java war 的操作命令
一:打包
1.命令行方式
前提是你机器中安装了JDK,并且在环境变量path中添加了jdk的bin 目录进去。

可以通过jar命令来打包war和jar包,如下jar命令使用规范
下面是使用示例
这个示例是打包class目录下的com目录,如果你想打包class目录下的所有内容可以使用
Java代码
1.jar -cvf test.jar *
Java代码
2.jar -cvf test.jar *
打war包也是一样的用法只是你打包的目录应该是web应用的根目录。

war包用winrar打开目录是这样的
大家可以根据自己的需求配置使用jar命令的参数。

2.使用工具 JBuilder对web项目可以自动生成war包
在web模块上单击右键选择properties
如下图进行设置,这样在rebuild项目和web模块的时候都会在项目根目录下产生一个war文件。

3.使用工具eclipse导出war包
在项目上点击鼠标右键
如下图
选择war点击下一步
选择要导出的项目和war的存放路径,点击完成
二:解压war
java war 打包、解压命令
经常将工程打包成war包,打包如下:
// 将当前目录打包成war包
jar cvf temp.war */ .
命令格式:
java cvf 打包文件名称要打包的目录打包文件保存路径解压自然就是:
jar xvf temp.war
jar和linux下面的tar命令类似
三:访问war
在TOMCAT中部署war。

spring程序打包war,直接通过-jar启动,并指定spring.profiles.a。。。

spring程序打包war,直接通过-jar启动,并指定spring.profiles.a。。。

spring程序打包war,直接通过-jar启动,并指定spring.profiles.a。

备注:spring boot有内嵌tomcat,jar项⽬可以⽤java -jar命令启动,war包也可以,且可以直接指定spring.profiles.active参数控制多环境配置直接指定传参,通过命令或脚本启动⽰例:/opt/jdk-1.8/jdk1.8.0_191/bin/java -jar -server -Xmx1024m -Xms1024m -Xmn256m -XX:PermSize=128m -Xss256k /opt/source/project/danny-test.jar --spring.profiles.active=test > /opt/source/project/info.out & (注意参数放在jar包后⾯,放前⾯好像不⾏,本⼈实测过)很多时候,我们项⽬在开发环境和⽣成环境的环境配置是不⼀样的,例如,数据库配置,在开发的时候,我们⼀般⽤测试数据库,⽽在⽣产环境的时候,我们是⽤正式的数据,这时候,我们可以利⽤profile在不同的环境下配置⽤不同的配置⽂件或者不同的配置spring boot允许你通过命名约定按照⼀定的格式(application-{profile}.properties)来定义多个配置⽂件,然后通过在application.properyies通过spring.profiles.active来具体激活⼀个或者多个配置⽂件,如果没有没有指定任何profile的配置⽂件的话,spring boot默认会启动application-default.properties。

profile的配置⽂件可以按照application.properyies的放置位置⼀样,放于以下四个位置,1. 当前⽬录的 “/config”的⼦⽬录下2. 当前⽬录下3. classpath根⽬录的“/config”包下4. classpath的根⽬录下我们在开发Spring Boot应⽤时,通常同⼀套程序会被应⽤和安装到⼏个不同的环境,⽐如:开发、测试、⽣产等。

封装服务

封装服务

封装服务主要是指为某些功能或操作提供对外的接口,从而可以让远方的程序进行调用。

在服务代码中,可以自己编写业务逻辑,也可以调用已经编写好的JavaBean。

我们主要采用中间件GDT(Grid Development Tools)开发服务,GDT可以简化开发流程。

利用它我们可以方便的实现Stub类的生成、gar包的生成以及服务的本地部署。

安装以及基本的使用方法见http://mage.uni-marburg.de/trac/gdt/wiki。

一、封装资源为服务在结构工程网格中,所有的资源必须以网格服务的形式存在。

因此,对资源的服务化封装是一个必须且重要的环节。

到目前为止,已经顺利将结构工程网格中的现有数据资源以及针对此数据资源的几个数据查询操作封装为网格服务,并能够从Portal处进行调用。

需要说明的是,我们实现的是从异地对网格服务进行调用。

网格服务的开发原理和部署过程都是类似的。

图3.2说明了在网格环境下开发网格服务的流程:图3.2 网格服务开发流程图1.1、将数据资源代理的业务逻辑打为war包由于是对数据资源进行异地封装且开发环境存在较大差异,因此在进行封装之前,需要将原有工程打为war包并重新配置开发环境。

这是统一开发环境的过程,其具体的操作过程如下所示:1、右键点击所要打包的工程,如图3.2.1[1]界面,选择其中的Export项。

选择此项图3.2.1[1]2、选择将要生成的文件为war文件,点击Next,如图3.2.1[2]所示。

图3.2.1[2]3、选择要打为war包的工程,并确定生成的war文件的输出路径,点击Finish,如图3.2.1[3]所示。

图3.2.1[3]4、为了便于重新配置开发环境,将wenesesgrid.war传送到信息服务小组并进行解压。

5、将wenesesgrid.war解压后生成的所有的jar文件拷贝到GT4的容器中去,具体位置是/usr/local/globus-4.0.5/lib。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CMD 模式下实现jar打包
注意包名以及manifest.mf文件每一个冒号有空格
最后一行为空
1、编译java文件
2、写manifest.mf文件
Manifest-Version: 1.0
Main-Class:<空格>package.class//指定主类,目的是如果有main函数能够直接运行
Class-Path: 包含的其他jar包中间空格间隔如果有多个jar包且不能为jar包中的jar包。

是需要在包里面包含的本地包lib/edd/.
<换行>最后一行为空行
保存
注意:没有添加主清单属性则不能够直接通过java –jar 包名.jar运行文件
Cmd下执行jar –cvfm name.jar manifest.mf 文件.class
这种情况是打包没有package名的.class文件。

jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名
jar cvfm classes.jar mymanifest.mf -C foo/ . 文件夹下所有类打包
foo为文件夹。

这种是打包有包名的.class。

应为这种情况下编译会产生cn.mypackage的情况
因此在manifest文件中会写出,而且也需啊把包的文件夹放在与manifest同一个位置再打包运行即可
运行即是java –jar name.jar;这种情况必须要有manifest文件。

不然不能执行main函数
含有多个java编译文件,属于同一个包的打包。

也是上诉方法,将其编译到一个包文件夹中,然后编译运行即可。

Jar 包的导入(CMD下使用)
只需要将包放入到classpath对应的文件夹下,然后使用import cn.ddd.class
即可。

如下:
import cn.mypackage.Testjar;//但是这种情况下用类需要把全名写出来不然不能访问,也就是说import cn.mypackage.*;写法是错误的
public class testcout
{
public static void main(String[] args)
{
Testjar t = new Testjar();
t.display();
}
}
运行输出:
Eclipse 下实现jar包的打包
Eclipse的jar包打包同样需要多个过程
1、选择包右键选择导出jarfile
2、
3、选择要导出的文件
4、
5、选择自己的manifest或者生成的manifest
选择主类,实现直接运行。

然后finish即可
关于生成自己的manifest.mf文件问题
这种情况下是使用了第三方的jar包的情况。

因此系统生成manifest文件不可用,需要自行生成manifest文件。

Manifest-Version: 1.0
Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar
lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jar Main-Class: main.KillCheatFans
1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
2、假设我们的项目打包后为KillCheatFans.jar,那么按照上面的定义,应该在KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件
在同一个目录下),并将相关的jar包放在里面。

否则将会出现“Exception in thread "main" ng.NoClassDefFoundError”的错误;
也就是说这个文件加下具有manifest文件以及lib文件,lib中存放有第三方的jar包。

3、Main-Class后面是类的全地址,比如你的主文件是KillCheatFans.java,文件里打包为package com.main; 那么这里就写com.main.KillCheatFans,
不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,
否则将会出现“jar中没有主清单属性”的错误。

注意eclipse下的文件最好都利用工程的file系统建立,不然会出现读取不到文件资源
以上情况下若想使用eclipse打包。

需要在工程下建立文件夹放置第三方包(eclipse装载包的方法三)。

然后工程文件夹下新建一个MANIFEST.MF文件写入配置信息。

这样保证了装有第三方包的文件与MANIFEST.MF处于一个文件夹内,这样编译不会出现问题。

然后再进行打包即可
Eclipse 生成jar包含有第三方jar包的情况
Eclipse 下实现jar包的导入
1、加入到jdk的库文件中作为本地库使用
任何一个工程都能用到,缺点是不具有专一性。

如果每一次都采用这种导包的方式最后导致jdklib杂乱无章。

很难管理。

因此需要单独的使用一种适用于工程的导包方式
2、单独为一个工程导入第三方的jar包,只有这个工程使用的方法:
一共三种方法:
1、传统导入
右击项目。

选择properties →java buildpath→libraries→add external jars方法实现。

这种方法的重用性较低
而且一旦第三方的jar包被移除,那么导入包就会出错。

因此这种情况下还是单独将其放置与本工程一个文件夹中,那么与第三种方法一致。

2 用户java包
Properties→java build path→add labrary→user library→
如果此时有创建好的库可以直接调用,或者是自己创建用户自定义库选择new→输入库→添加jar包
这样用户自定义库就可以在工程中实现重用了同样,移除文件夹也会存在问题的。

方法三文件夹法
在项目中新建文件夹。

将jar文件夹考入其中
将所需jar文件导入。

然后buildpath add to buildpath即可
这样就加入了jar包这种方法最好。

项目性质专一。

而且不会受到jar包的原始路径的影响。

且适合用于将当前的工程导出。

War包的问题
Eclipse下war包的打包
选中工程→右键选择export warfiles→选中服务器类型→确定导出即可.。

相关文档
最新文档