`
oywl2008
  • 浏览: 1003489 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

体验maven插件功能,同时打包jar和war

 
阅读更多

体验maven插件功能,同时打包jar和war

maven 是一个java编写的用于构建系统的自动化工具,正在逐渐取代Ant,成为主流的工具.
官方主页:http://maven.apache.org/

maven打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par。但是maven同时只能生成一种类型的包,在实际项目中,如果
同时生成几种类型的包,如生成jar,同时生成war,并将新生成的jar也打到war中。这就需要使用maven的插件功能,下面列举一些常用的插件:
1 同时生成jar和war, war在主文件中,用plugin生成jar            
         <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classesDirectory>target/classes</classesDirectory>
                            <finalName>fooWebApp</finalName>
                            <outputDirectory>target/fooWebApp/WEB-INF/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
2 类似于ant的文件复制 
           <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.1</version>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                src/main/webapp/WEB-INF/lib
                            </outputDirectory>
                            <resources>
                                <resource>
                                    <directory>
                                        target/jar
                                    </directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
3 指定jdk版本 
      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>
4 指定编码格式 
     <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>
   
注意: maven打包和构建是异步执行的,同时执行多个任务时,可能会发生IO错误,如要拷贝的文件夹正在生成。可以考虑将该任务分成多个阶段。

完整的示例:
<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/maven-v4_0_0.xsd ">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.zhuozhe</groupId>
    <artifactId>fooWebApp</artifactId>
    <packaging>war</packaging>
    <version>1.0</version>
    <name>fooWebApp</name>
    <url>http://maven.apache.org</url>
    <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>
    <dependencies>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
       <version>1.1</version>
    </dependency>
    </dependencies>
    <build>
        <finalName>fooWebApp</finalName>
   <plugins>

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
     <source>1.5</source>
     <target>1.5</target>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
   </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classesDirectory>target/classes</classesDirectory>
                            <finalName>fooWebApp</finalName>
                            <outputDirectory>target/fooWebApp/WEB-INF/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
           
          <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.4.1</version>
    <configuration>
     <encoding>UTF-8</encoding>
    </configuration>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                src/main/webapp/WEB-INF/lib
                            </outputDirectory>
                            <resources>
                                <resource>
                                    <directory>
                                        target/jar
                                    </directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
           
  </plugins>
    </build>
</project>

分享到:
评论

相关推荐

    Maven build插件之Maven-assembly-plugin自定义打包

    ● 打包成指定格式分发包,支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的。 ● 能够自定义包含/排除指定的目录或文件。 并附上了学习过程中应注意的细节,以及遇到的问题及解决方法...

    Maven将带有第三方依赖的可执行程序打包示例

    maven-assembly-plugin 插件打第三方依赖包进 jar,spring 有 org.springframework.beans.factory.parsing.BeanDefinitionParsingException 异常怎么办? maven-shade-plugin 插件打第三方依赖包,spring 有 java....

    Maven常用插件整理.docx

    该插件允许用户整合项目的输出,包括依赖,模块,网站文档和其他文档到一个单独的文档,即可用定制化打包。 创建的文档格式包括:zip, tar, tar.gz(tgz), gar.bz2(tbgz2), jar, dir,war 等等。四种预定义的描述器可用:...

    wildfly-jar-maven-plugin:WildFly可启动JAR

    WildFly可启动JAR Maven插件该项目定义了一个Maven插件来构建WildFly可启动JAR(从20.0.0.Final版本开始)。 WildFly可启动JAR包含服务器和打包的应用程序(JAR,EAR或WAR)。 构建应用程序并将其打包为可启动JAR...

    WMV:WMV- Whats My Version是一个Maven插件,它将版本信息存储在jarwar文件中,以便您在运行时检索它

    Whats My Version是一个maven插件,可在打包过程中将工件的版本信息存储在jar / war文件中。 此信息以后可以很容易地检索出来,以便以您想要的任何方式使用(例如向用户显示)。 用法 该插件可通过中央Maven存储库...

    尚硅谷学习笔记+代码,Maven 教程

    安装:把一个 Maven 工程经过打包操作生成的 jar 包或 war 包存入 Maven 仓库 部署 部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上 部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat...

    maven的优缺点 项目

    Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录...

    maven-module多模块依赖项目在eclipse中搭建与开发

    Maven-module项目可以把较大的项目按照功能或者层次进行横向与纵向的模块化分割。...本文以maven插件官方示例(具体地址请查看附录)为素材,进行了项目搭建、运行与打包。项目代码压缩包请查看附录。

    Maven权威指南 很精典的学习教程,比ANT更好用

    Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories) 3.5.5. Maven依赖管理 (Dependency Management) 3.5.6. 站点生成和...

    Maven使用实战-从入门到精通实践【张振华.Jack】

    Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用?...插件( compiler 、eclipse、 jar 、war、jetty)等 仓库( repository 、 distributionManagement ) 不存在的jar怎么办?

    xmljava系统源码-classfinal:Java类加密工具

    xml java系统源码 ClassFinal 介绍 ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何...支持maven插件,添加插件后在打包过程中自动加密。 支持加密WEB-INF/lib或BOOT-INF/lib下的

    ClassFinal字节码加密工具-其他

    功能特性:无需修改原项目代码,只要把编译好的jar/war包用本工具加密即可。运行加密项目时,无需求修改tomcat,spring等源代码。支持普通jar包、springboot jar包以及普通java web项目编译的war包。支持spring ...

    excelsior-jet-maven-plugin:Excelsior JET Maven插件为Maven用户提供了一种简便的方法,可使用Excelsior JET将其应用程序编译为优化的本机Windows,OS X或Linux可执行文件

    Excelsior JET Maven插件怡东JET Maven插件提供了Maven的...打包到Spring Boot可执行jar或war文件中(自Excelsior JET 15.3起), -可以部署到Apache Tomcat应用程序服务器的.war文件, 可从非JVM语言调用的调用动态

    jtwig-types-3.0.2.zip

    embeddedtc-maven-plugin.zip,将war文件和tomcat 7嵌入到一个可执行jar maven插件中的maven插件,该插件将一个带有tomcat7的war文件打包到一个jar中

    持续集成与容器管理1

    (1)手动部署:首先基于源码打包生成jar包(或war包),将jar包(或war包)上传至虚 (2)通过Maven插件自动部署 (1)修改宿主机的docker配

    Taotao:基于soa架构的分布式电子商城

    Tomcat7 + MySQL + SVN软件架构: springMVC + Mybatis + Maven + CentOS+ Solr + Redis + Nginx后台工程搭建分析Maven的常见打包方式:jar、war、pomPom工程一般都是父工程,管理jar包的版本、maven插件的版本、...

    springboot参考指南

    打包可执行jar和war文件 v. 59.5. 就地(in-place)运行项目 vi. 59.6. Spring Boot插件配置 vii. 59.7. Repackage配置 viii. 59.8. 使用Gradle自定义配置进行Repackage i. 59.8.1. 配置选项 Spring Boot参考指南 6...

    camunda-acm-plugin:社区扩展为自适应案例管理(ACM)提供了一个Cockpit插件

    camunda ACM座舱插件 该Camunda Cockpit插件提供有关案例定义和部署到Camunda... 生成的JAR文件必须打包在Camunda Webapp WAR中。 该插件至少需要Camunda 7.2.0才能执行。 贡献者 马丁·冈瑟(MartinGünther) 奥利弗

    VolunteerZ_Backend

    后端 这是志愿者Z的后端应用程序 发展 要在开发配置文件中启动您的应用程序,请运行: ./mvnw 生产建筑 包装为罐 要构建最终的jar并优化用于生产的后端应用程序,...您可以使用 或使用maven插件运行声纳分析。 然后,

Global site tag (gtag.js) - Google Analytics