`

使用maven打包jar或者war

 
阅读更多
使用maven-war-plugin 对Maven项目进行动态打包 http://nileader.blog.51cto.com/1381108/449956
如何把配置文件打包到jar中 http://blog.csdn.net/ciedecem/article/details/10382275
maven打包总结 http://blog.csdn.net/fireofjava/article/details/14447325
maven打jar包 http://hy90171.iteye.com/blog/1916293
使用maven打出独立应用程序的jar包 http://pipilu.iteye.com/blog/399816
maven生成war包的两种方式http://touchfu.iteye.com/blog/545708
Maven 是怎样创建War 包? http://my.oschina.net/u/939534/blog/173863


打包参数:
mvn package -P saas -Dwar.name=dfxd -Ddb.name=dfxd
注意:D参数可以使用多次,匹配pom.xml里面定义的属性。

1. 打包jar时,想排除所有的resource文件
<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <classifier>lib</classifier>
                            <excludes>
                                <exclude>*Main*</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

maven 生成的jar文件指定main class http://qinglangee.iteye.com/blog/709961
<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>zhch.illq.time</groupId>
  <artifactId>time_tool</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>time_tool</name>
  <url>http://maven.apache.org</url>
  <!-- 指定属性 -->
  <properties>
    <cxf.version>2.2.8</cxf.version>
    <spring.version>3.0.2.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>zhch.illq.time.TimeTool</mainClass>
						</manifest>
					</archive>
				</configuration>
			</plugin>
		</plugins>
	</build>
  
</project>

jar 命令:
假设现在是在classes目录的同级目录中 
jar cvef zhch.illq.time.TimeTool timetool.jar -C classes . 
-C 是指定要打包的目录
. (点) 是文件,表示当前目录,这样就把classes目录中及子目录中所有文件打包
参数e f 分别指定main class和生成的jar文件名, 后面要按顺序来
也可以写成这样 
jar cvfe timetool.jar zhch.illq.time.TimeTool -C classes . 

maven 将代码打成可执行jar包 http://my.oschina.net/u/147181/blog/164938
在Eclipse中编写代码,如果没有用到第三方jar可以直接export成jar包,但是如果用到第三方jar包,就需要手动将拷贝依赖的jar包,也可以编写ant脚本自动打包。更方便的是使用maven,现在maven管理项目很方便,如下面将自己编写的类打成可执行jar包,并自动拷贝依赖的jar包。 下面是pom.xml文件:
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.yeetrack</groupId>
    <artifactId>httpclient</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>httpclient</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.2.3</version>
            </dependency>
    </dependencies>

    <build>
        <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <archive>
                    <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                    <!--指明main方法所在的类-->
                            <mainClass>com.baidu.httpclient.SVNTest</mainClass>
                    </manifest>
                        </archive>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <executions>
                            <execution>
                        <id>copy</id>
                        <phase>package</phase>
                        <goals>
                         <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                            ./target/lib
                         </outputDirectory>
                         </configuration>
                            </execution>
                    </executions>
                </plugin>
        </plugins>
    </build>
</project>

执行 maven install就会在项目target文件夹下生成jar包,和依赖的jar包(在lib文件夹中),直接运行 java -jar *.jar即可。


2. 打war包时排除resource
<build>   
  <plugins>
   <plugin>   
    <groupId>org.apache.maven.plugins</groupId>   
    <artifactId>maven-war-plugin</artifactId>   
    <version>2.0.2</version>   
    <configuration>   
     <warSourceExcludes>src/main/resources/**</warSourceExcludes>   
    </configuration>   
   </plugin>   
  </plugins>   
 </build>


打包时过滤和包含文件例子
<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<escapeString>\</escapeString>
					<warName>${war.name}-${version.num}</warName>
					<warSourceExcludes>src/main/resources/packaged/**</warSourceExcludes>
					<webResources>
						<resource>
							<directory>src/main/resources/packaged</directory>
							<targetPath>WEB-INF/classes</targetPath>
							<filtering>true</filtering>
							<includes>
								<include>hibernate.properties</include>
							</includes>
						</resource>
                        <resource>
                            <directory>src/main/resources/packaged/tmp</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <filtering>true</filtering>
                            <includes>
                                <include>applicationContext-init.xml</include>
                            </includes>
                        </resource>
					</webResources>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory>
                    <webXml>src/main/resources/packaged/tmp/web.xml</webXml>
				</configuration>
			</plugin>


注意:pom.xml定义的一些属性,是可以被使用到applicationContext.xml里面的,
比如:pom.xml存在<hibernate.dialect>org.hibernate.dialect.SQLServerDialect</hibernate.dialect>,然后jdbc.properties存在hibernate.dialect=${hibernate.dialect},applicationContext.xml存在<prop key="hibernate.dialect">${hibernate.dialect}</prop>,那么打包得到的war,applicationContext.xml会变为:<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
分享到:
评论

相关推荐

    maven打包 maven打jar包详细步骤

    本文将详细讲解如何使用Maven来打包一个Java项目,并创建JAR文件。 首先,Maven有三个主要生命周期阶段:`clean`、`default`(也称为`compile`)和`install`。每个阶段包含一系列的阶段(或者称为目标,如`compile`...

    Maven引入本地Jar包并打包进War包中的方法

    "Maven引入本地Jar包并打包进War包中的方法" Maven是一种流行的项目管理工具,主要用于Java项目的构建、测试和部署。在实际开发中,我们经常需要引入本地Jar包以满足项目的需求。本文将介绍Maven引入本地Jar包并...

    Maven发布Jar包中文乱码解决方法

    然而,在使用 Maven 发布 Jar 包时,ometimes 中文字符会出现乱码问题。本文将详细介绍 Maven 发布 Jar 包中文乱码解决方法。 一、问题分析 在使用 Maven 部署 Jar 包时,可能会出现中文乱码问题。这种问题的出现...

    maven 打jar包,source包,并上传到本地maven库

    #### Maven打包Jar与Source包概述 在软件开发过程中,Maven作为一种自动化构建工具,极大地简化了项目的构建过程。通过Maven,开发者可以轻松地将Java项目打包成可部署的形式,如Jar包或War包。此外,Maven还支持...

    spring 扫描jar maven 打包

    2. **Maven打包过程** Maven是一个强大的项目管理工具,它可以帮助开发者编译、测试、打包、部署Java应用。在Maven中,打包(package)目标是用来创建项目的最终输出,如JAR或WAR文件。默认的打包类型取决于项目的`...

    maven打包web项目时同时打包为war和jar文件的方法

    maven打包web项目时同时打包为war和jar文件的方法 在Maven项目中,通常情况下,我们只能打包成war文件或jar文件,但是在某些情况下,我们需要同时打包成war和jar文件。今天,我们将介绍如何使用Maven同时打包web...

    Maven打包,指定classes路径

    以上就是关于"Maven打包,指定classes路径"的知识点,主要涉及到Maven的资源配置和插件定制。理解并掌握这些配置可以帮助开发者更高效地管理和构建Java Web应用。同时,记得在实际项目中根据实际情况调整`pom.xml`,...

    Springboot 打Jar包,Maven完美解决本地Jar包自动打入Springboot Jar包中

    **Maven 插件** 如`spring-boot-maven-plugin`能够实现将Spring Boot应用打包为可执行的Jar或War文件,并且可以配置不同的参数来控制构建行为。例如,指定主类、排除某些依赖等。 ##### 2. 使用Maven安装本地Jar包 ...

    在eclipse中不使用maven创建springboot工程所需jar包

    在不使用Maven的情况下,在Eclipse中创建Spring Boot工程,你需要手动管理依赖的jar包。以下是一些关于这些jar包及其在Spring Boot项目中的作用的关键知识点: 1. **jboss-logging-3.3.0.Final.jar**:这是一个日志...

    maven打包war配置

    "maven打包war配置"这个主题涉及到如何使用Maven来打包一个Web应用程序(WAR)项目。WAR文件是Web应用的标准格式,包含了Servlets、JSPs以及其他必要的资源,可以部署到像Tomcat这样的Servlet容器中。 **1. Maven的...

    maven仓库 jar包

    - **package**: 打包项目,生成jar或war文件。 - **deploy**: 将最终的制品部署到远程仓库。 **Maven的插件** Maven的插件系统非常强大,可以执行各种任务,如编译、测试、打包、部署、清理等。每个插件都有一系列...

    maven项目编译jar包

    通过以上步骤,你就可以使用Maven成功地编译和打包一个Java项目为JAR文件。确保你的环境中已经安装了Maven,并且配置了正确的Maven环境变量,然后按照上述方法操作即可。记住,Maven的强大在于它的标准化和自动化,...

    Maven中主要jar包集合

    比如,`mvn compile`命令会负责编译源代码,`mvn package`则会将编译后的代码打包成可部署的格式,如JAR或WAR。 在提供的压缩包"**MvnRepo**"中,可能包含了开发者常用的一些jar包库。这些库可能包括了各种功能的...

    springboot_jsp_maven(war+jar).rar

    【标题】"springboot_jsp_maven(war+jar)"是一个综合了Spring Boot、JSP和Maven技术的示例项目,旨在展示如何在Spring Boot框架下开发并部署包含Web界面的应用程序。该项目的独特之处在于它同时支持两种常见的部署...

    Maven自动升级版本号并打包上传的脚本

    3. Maven打包: `mvn package`命令会将源代码编译、测试并打包成指定格式(如JAR或WAR)。如果配置了`&lt;build&gt;&lt;finalName&gt;yourArtifactId&lt;/finalName&gt;&lt;/build&gt;`,那么生成的文件名将会是`yourArtifactId-1.0.0-...

    maven 打包 部署到tomcat 删除的jar包

    ### Maven打包过程中的依赖管理 Maven是一个非常强大的自动化构建工具,它能够帮助开发者高效地完成项目的构建、测试、打包等一系列工作。当使用Maven进行项目打包时,会根据项目的`pom.xml`文件中定义的依赖关系...

    Maven打包实战.zip

    总结来说,Maven打包实战涵盖了从基本的`pom.xml`配置,到Eclipse中使用Maven插件进行打包,再到处理复杂的打包需求,如生成可执行JAR。通过这个实战教程,你将能够掌握Maven的核心打包技巧,提升项目构建和管理的...

    maven 过滤文件夹打包

    至于压缩包子文件的文件名称列表"package-folder",这可能是指Maven打包后的结果,即生成了一个名为`package`的文件夹。这个文件夹通常包含了项目的所有依赖、资源文件以及打包后的主应用程序。在Maven的默认配置中...

    cas单点登陆集成到简单maven项目的全部war包

    - 创建一个新的Maven项目,或者使用提供的DEMO项目。 - 在pom.xml中添加CAS客户端的依赖,如`cas-client-support-springboot`等。 - 配置`application.properties`或`application.yml`,包含CAS服务器的URL、服务...

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

    下面是一个使用Maven打包的实战Demo,我们使用Lucene框架来开发一个简单的全文检索工具。首先,我们需要在pom.xml文件中添加Lucene的依赖: ``` &lt;groupId&gt;org.apache.lucene &lt;artifactId&gt;lucene-core &lt;version&gt;...

Global site tag (gtag.js) - Google Analytics