war包即对WEB应用程序进行打包,用于应用容器的部署。如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了。打包方式有很多中,很多工具本身就支持此功能。下面主要介绍通过maven来操作的两种方式:
方法一:
即第一反应的那种啦,就是利用maven的maven-war-plugin。
- <build>
- <plugins>
- ......
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-war-plugin</artifactId>
- <version>2.0.2</version>
- <configuration>
- <warSourceExcludes>WEB-INF/lib/log4j-${log4j.version}.jar</warSourceExcludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
当然你可以指定war包的名称,输出的目录,webapp目录等等。
可以在需要打包的工程中直接设定:<pom>war</pom>
这样在install的时候就会对此工程生成相应配置的war包,原来此web工程依赖的其他工程全部会以jar包的形式出现在lib目录下,所以不需要再去关心war包中集成的jar包是否完整,maven已经帮你做完了。
顺便提一句,在jboss中发布war包,如果包中包含log4j.jar,会报错,所以在本例中将此jar包排除在外。
方法二:
不用war插件,而是用到另外三个插件:maven-dependency-plugin 、maven-antrun-plugin 、 build-helper-maven-plugin
下面分别说明下着三个插件在此过程扮演的角色:
maven-dependency-plugin :相当于数据收集器,该依赖那些jar包,该加载那些resource信息。
maven-antrun-plugin:完成收集完文件夹的压缩和包的重命名。
build-helper-maven-plugin:让压缩包拥有男人本色,oh sorry 是war本色。
在写pom.xml配置前,先说明下目录结构
root
|
|---template
|
|---wardir
其中这两个目录都作为maven的独立工程,下面要写配置在wardir下的pom.xml中
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.0</version>
- <executions>
- <execution>
- <id>create-structure</id>
- <phase>process-resources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>GROUPID</groupId>
- <artifactId>template</artifactId>
- </artifactItem>
- </artifactItems>
- <outputDirectory>
- ${project.build.directory}/${assembly.name}.war
- </outputDirectory>
- </configuration>
- </execution>
- <execution>
- <id>copy-libs</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>jdom</groupId>
- <artifactId>jdom</artifactId>
- </artifactItem>
- ......
- </artifactItems>
- <outputDirectory>${project.build.directory}/${assembly.name}.war/WEB-INF/lib</outputDirectory>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.3</version>
- <executions>
- <execution>
- <id>copy-config</id>
- <phase>process-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <copy todir="${project.build.directory}/${assembly.name}.war">
- <fileset dir="src/main/resources" />
- </copy>
- <zip destfile="${project.build.directory}/${assembly.name}-${project.version}-war.zip">
- <zipfileset dir="${project.build.directory}/${assembly.name}.war" includes="**\*.*" excludes="*.zip" />
- </zip>
- <copy file="${project.build.directory}/${assembly.name}-${project.version}-war.zip"
- tofile="${project.build.directory}/${assembly.name}-${project.version}.war" />
- </tasks>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.4</version>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>${project.build.directory}/${assembly.name}-${project.version}.war</file>
- <type>war</type>
- </artifact>
- </artifacts>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
当然这种方式也可以用来打ear包。对于打无页面操作系统的war包,个人认为用后者更灵活,当然建立假web工程,再依赖工程,通过第一种方式同样可以达到最终的结果。看个人喜好了。
相关推荐
本篇文章主要介绍了Maven引入本地Jar包并打包进War包中的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
maven依赖war构件 技术交流希望 这个工程简单的介绍一下怎么在开发环境
maven打包 maven打jar包详细步骤
java运行依赖jar包
主要介绍了Spring Boot+maven打war包的方法,本文通过实例代码相结合的形式给大家介绍的非常详细,需要的朋友参考下吧
maven项目发布生成可运行的jar文件,发布到服务器直接运行
maven-war-plugin-2.1.jar
maven上传jar包到nexus私有库 由于是nexus菜鸟,不知道要上传哪些包,所以全部本地上传,一个一个的写太麻烦,于是写了个批量生成maven脚本的py脚本,使用说明见py文件内部说明
maven-war-plugin-2.0.2.jar
NULL 博文链接:https://byx5185.iteye.com/blog/739822
maven-war-plugin-20030413.023708.jar
NULL 博文链接:https://yan578351314.iteye.com/blog/1201387
java运行依赖jar包
maven-war-plugin-2.0.1.jar
maven-war-plugin-2.0.jar
maven-war-plugin-1.6.3.jar
maven资源包maven资源包maven资源包maven资源包maven资源包maven资源包maven资源包maven资源包maven资源包maven资源包
maven-war-plugin-1.6.2.jar
maven自动部署war包到tomcat
maven版正确的Springboot打war包所需的pom依赖配置文件,童叟无欺,绝不欺骗,如下载后有问题,可联系本人