`
mengyunshuitian
  • 浏览: 3436 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

maven发布 jar类型的工程

阅读更多

通过maven管理jar,当工程是jar类型时,发布时无法将依赖的jar一起打成jar包,本文将解决这个问题,和大家分享讨论

第一步,首先在pom.xml文件中,添加maven-assembly-plugin插件,代码如下

 

 

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-assembly-plugin</artifactId>
	<version>2.2.1</version>
	<configuration>
		<descriptors>
		            <descriptor>assembly.xml</descriptor>
		</descriptors>
	</configuration>
</plugin>

 assembly.xml代码如下:

 

 

<assembly
	xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
	<id>jar-with-dependencies</id>
	<formats>
		<format>jar</format>
	</formats>
	<includeBaseDirectory>false</includeBaseDirectory>
	<dependencySets>
		<dependencySet>
			<unpack>false</unpack>
			<scope>runtime</scope>
		</dependencySet>
	</dependencySets>
	<fileSets>
		<fileSet>
			<directory>${project.build.outputDirectory}</directory>
		</fileSet>
	</fileSets>
</assembly>

 通过assembly.xml描述,我们可以将第三方依赖,统一打包到{artifactId}-jar-with-dependencies.jar 这个jar包,这样方便我们管理第三方依赖

 

第二步,通过maven的maven-jar-plugin插件,我们可以配置MANIFEST.MF中的Main-Class和Class-Path,声明程序入口和依赖包的路径,代码如下:

 


 

 

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<version>2.3.2</version>
	<configuration>
		<archive>
			<manifest>
                               <!--程序入口-->					
                               <mainClass>cn.creditease.loan.exchange.main.server.SpringRmiServer</mainClass>
				<addClasspath>true</addClasspath>
				<!--依赖的第三方包路径-->
				<classpathPrefix>lib/</classpathPrefix>
			</manifest>
			<manifestEntries>
				<Class-Path>.</Class-Path>
			</manifestEntries>
		</archive>
	</configuration>
</plugin>
 

 

第三步,新建一个文件夹,比如E:\test,将{artifactId}-jar-with-dependencies.jar和java -jar E:\test\{artifactId}.jar拷贝到test目录,在test目录下,新建一个lib目(<classpathPrefix>lib/</classpathPrefix>,放到lib目录下)和一个startup.bat文件,编辑startup.bat文件,添加 java -jar E:\test\{artifactId}.jar

最后,用压缩工具打开{artifactId}-jar-with-dependencies.jar,将里面所有的第三方jar全部拷贝到lib目录下,运行startup.bat文件,就可以运行!

 

 

 

 

分享到:
评论
1 楼 sandy_leen 2013-10-30  
这样做不还是两个分开的jar么?

相关推荐

    本地maven工程自动发布

    2. Maven打包:Maven的打包目标`package`会根据项目的打包类型(如jar、war)生成相应的文件。对于Java应用,通常是生成jar文件。你可以通过修改pom.xml中的&lt;build&gt;&lt;finalName&gt;元素来定制生成的jar文件名。 3. ...

    Maven构建的分布式demo

    通过在POM中设置打包类型为`war`,并添加相关的插件和依赖,Maven能够自动构建出可部署的WAR文件。 3. **JAR工程**:对于非Web的微服务,我们可以创建JAR工程。Maven的`maven-jar-plugin`插件可以帮助我们将Java...

    springboot工程(单个maven工程)利用proguard实现代码混淆

    本篇文章将详细探讨如何在一个Spring Boot的Maven工程中集成并使用ProGuard进行代码混淆。 首先,让我们理解什么是代码混淆。代码混淆是指将源代码中的类名、方法名和变量名替换为无意义的简短名称,同时保持代码的...

    Maven 使用入门.pdf

    ### Maven 使用入门详解 ...通过以上介绍可以看出,Maven 作为一种强大的构建工具,不仅简化了 Java 项目的构建流程,还为开发者提供了丰富的功能,帮助团队高效地管理项目依赖、构建和发布过程。

    maven详细笔记.docx

    Maven 的仓库可以分为三种类型:本地仓库、中央仓库和远程仓库。本地仓库是指本地磁盘上的一个文件夹,可以在 setting.xml 文件中配置。中央仓库是由 Maven 社区提供的仓库,包含了大量常用的库。远程仓库是开发人员...

    关于maven的资源依赖介绍

    Maven 工程是 Maven 管理的基本单位,根据不同的目标和需求,Maven 工程有以下几种类型: #### 1. POM 工程 POM 工程实际上是 Maven 的配置文件,它描述了项目的结构、依赖和其他元数据。POM.xml 文件是 Maven ...

    使用Eclipse构建Maven项目.pdf

    - 创建Maven Web项目时,通常在Eclipse中通过New Project向导来进行,选择Maven项目类型,并定义项目的坐标和打包方式。 - 项目创建后,可以使用Maven命令来添加项目依赖包,这样可以自动下载并添加相应的jar包到...

    maven 简单使用教程

    - 构建:生成各种类型的输出,如JAR、WAR或EAR文件。 - 文档生成:创建Javadoc和项目网站。 - 报告生成:例如JUnit测试报告。 - 依赖管理:自动下载项目所需的所有依赖。 - SCM集成:与版本控制系统如Git、SVN...

    Maven权威指南 的simple-parent 工程

    - `&lt;packaging&gt;`:项目打包类型,如jar、war或pom(父工程常用)。 - `&lt;name&gt;`:项目的名称。 - `&lt;description&gt;`:项目描述。 - `&lt;modules&gt;`:包含的子模块列表。 - `&lt;dependencyManagement&gt;`:定义依赖的版本...

    Maven使用培训PPT(巨全)

    packaging定义了项目的最终输出类型,常见的类型有jar, war等。dependencies元素描述了项目依赖的其他模块。 ### Maven命令、生命周期、核心概念 Maven的核心概念之一是其生命周期。Maven生命周期定义了项目的构建...

    Maven 命令Maven 命令Maven 命令

    - `mvn eclipse:eclipse`:将Maven项目转换为Eclipse工程,使Eclipse能够识别Maven的构建配置。 4. **清理**: - `mvn clean`:清除目标目录(`target`)中的所有构建产物,包括编译后的类、测试结果等。 5. **...

    maven聚合项目模板

    这意味着对于一个给定的项目类型(如jar, war等),Maven有一套默认的构建行为和目录结构。例如,源代码通常放在src/main/java目录下,资源文件放在src/main/resources下。通过聚合项目,这种约定可以扩展到所有子...

    Maven2 的新特性.7z

    Maven2也考虑到:不同类型的项目需要拥有不同的目录结构。如创建web项目,可以使用命令: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-...

    构建工具:maven简介

    常见的工程类型包括普通的Java应用、Android应用、OSGi bundle、Clojure项目、Web应用打包(WAR)等。通过不同的archetype选项,开发者能够快速搭建起相应的项目结构。 在构建过程中,Maven会根据项目POM文件中定义...

    Maven入门教程

    - **packaging**:项目的类型,默认为`jar`,还可以是`war`、`pom`等,决定了项目构建后的输出形式。 #### Maven的安装与配置 1. **下载与安装**: - 从Maven官网下载最新版本的Maven压缩包。 - 解压至指定目录...

    Maven安装及配置详解.pdf

    Maven是Apache软件基金会的一个开源项目,作为一款优秀的项目构建工具,它能够帮助开发者有效地管理项目中的jar包及jar包之间的依赖关系,同时也支持项目的编译、测试、打包和发布等任务。 **为什么学习Maven?** ...

    maven常见问题问答(超全面)

    - `packaging`:项目类型,如`jar`、`war`等。 - `version`:项目版本号。 通过以上内容,我们可以了解到Maven作为一个项目管理工具的强大之处,它不仅能够简化构建过程,还能够在项目的生命周期管理、依赖管理和...

    maven命令指南

    对于Web应用的开发,Maven提供了专门的架构类型: ``` mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp ``` 这里,`maven-archetype-webapp`...

    Maven安装配置全教程

    - **构建支持**:Maven支持多种应用程序类型的构建,如JAR、WAR等,为每种类型提供了一套构建规则和工具集。 - **输出物管理**:项目构建产生的产物(如编译后的类文件、文档等)会被统一管理,并可以方便地被其他...

Global site tag (gtag.js) - Google Analytics