精华内容
下载资源
问答
  • maven打包依赖jar也打包的方法

    万次阅读 2019-04-29 20:33:46
    maven是目前很常用的管理jar的工具,使用maven可以直接将java项目打包成一个可运行的jar,但是有时候有些依赖的jar没有包含在里面,这时候就需要早pom文件中build里面添加下面的配置 <plugins> <...

    maven是目前很常用的管理jar的工具,使用maven可以直接将java项目打包成一个可运行的jar,但是有时候有些依赖的jar没有包含在里面,这时候就需要早pom文件中build里面添加下面的配置

    <plugins>
    			<plugin>
    				<artifactId>maven-assembly-plugin</artifactId>
    				<configuration>
    					<archive>
    						<manifest>
    							<!--这里要替换成jar包main方法所在类 -->
    							<mainClass>xx.tt.mainClass</mainClass>
    						</manifest>
    						<manifestEntries>
    							<Class-Path>.</Class-Path>
    						</manifestEntries>
    					</archive>
    					<descriptorRefs>
    						<descriptorRef>jar-with-dependencies</descriptorRef>
    					</descriptorRefs>
    				</configuration>
    				<executions>
    					<execution>
    						<id>make-assembly</id> <!-- this is used for inheritance merges -->
    						<phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->
    						<goals>
    							<goal>single</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    </plugins>

    还有一种是jar放到相对路径下

    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-dependency-plugin</artifactId>
    				<executions>
    					<execution>
    						<id>copy-dependencies</id>
    						<phase>package</phase>
    						<goals>
    							<goal>copy-dependencies</goal>
    						</goals>
    						<configuration>
    							<outputDirectory>${project.build.directory}/lib</outputDirectory>
    							<overWriteReleases>false</overWriteReleases>
    							<overWriteSnapshots>false</overWriteSnapshots>
    							<overWriteIfNewer>true</overWriteIfNewer>
    						</configuration>
    					</execution>
    				</executions>
    			</plugin>
    			<plugin>
    				<artifactId>maven-assembly-plugin</artifactId>
    				<configuration>
    					<archive>
    						<manifest>
    							<mainClass>xx.tt.mainClass</mainClass>
    						</manifest>
    						<manifestEntries>
    							<Class-Path>.</Class-Path>
    						</manifestEntries>
    					</archive>
    					<descriptorRefs>
    						<descriptorRef>jar-with-dependencies</descriptorRef>
    					</descriptorRefs>
    				</configuration>
    				<executions>
    					<execution>
    						<id>make-assembly</id>
    						<phase>package</phase>
    						<goals>
    							<goal>single</goal>
    						</goals>
    					</execution>
    				</executions>
    			</plugin>
    		</plugins>
    	</build>
    

    配置完成后,如果使用的是IDE工具,右键项目选择run as,选择maven install。

    如果是maven直接打包mvn clean install

    下面简单给出这个命令执行的过程

     执行顺序:

    1、使用清理插件:maven-clean-plugin:2.5执行清理删除已有target目录(版本2.5);

    2、使用资源插件:maven-resources-plugin:2.6执行资源文件的处理(版本2.6);

    3、使用编译插件:maven-compiler-plugin:3.1编译所有源文件生成class文件至target\classes目录下(版本3.1);

    4、使用资源插件:maven-resources-plugin:2.6执行测试资源文件的处理(版本2.6);

    5、使用编译插件:maven-compiler-plugin:3.1编译测试目录下的所有源代码(版本3.1);

    6、使用插件:maven-surefire-plugin:2.12运行测试用例(版本2.12);

    7、使用插件:maven-jar-plugin:2.4对编译后生成的文件进行打包,包名称默认为:artifactId-version,比如本例生成的jar文件:rtp-front-1.0-SNAPSHOT,包文件保存在target目录下;

    8、使用maven-install-plugin:2.4把上述打包生成的jar包和pom文件安装到本地的仓库中(一般默认的路径为:%HOMEPATH%\.m2\repository\pom中groupId按.分隔的目录层次\pom中的artifactId\pom中的version\jar包的名称)。

    展开全文
  • maven打包时打包指定的lib文件夹

    千次阅读 2019-10-31 19:15:29
    今天在打包自己的spring boot...因为我有些依赖是放在项目lib文件夹中,那么打包的时候要连把它一起打包。 修改pom.xml, 添加一下内容: <build> <plugins> <plugin> <groupId>or...

    今天在打包自己的spring boot项目时遇到了问题, 报找不到类和符号。

    因为我有些依赖是放在项目lib文件夹中,那么打包的时候要连把它一起打包。

     

    修改pom.xml, 添加一下内容:

    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <goals>
                                <goal>repackage</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <compilerArguments>
                            <extdirs>lib</extdirs>
                        </compilerArguments>
                    </configuration>
                </plugin>
            </plugins>
    
            <resources>
                <resource>
                    <directory>lib</directory>
                    <targetPath>BOOT-INF/lib/</targetPath>
                    <includes>
                        <include>**/*.jar</include>
                    </includes>
                </resource>
            </resources>
        </build>

     

    然后cmd切换到项目根路径执行打包命令:mvn clean package -Dmaven.test.skip=true

    打包后的jar包结构可以看到lib文件夹被整个打包进去了。

     

     

     

     

    展开全文
  • 最近系统上线频繁,每次系统上线,当用maven打成war的时候,由于war包中都包括了lib,所以每次war挺大,往生产上上传的时候挺慢,后来把这些lib包都移到tomcat的上层,新建了个tomcat/locallib,把所有webapp/lib下得...

    最近系统上线频繁,每次系统上线,当用maven打成war的时候,由于war包中都包括了lib,所以每次war挺大,往生产上上传的时候挺慢,后来把这些lib包都移到tomcat的上层,新建了个tomcat/locallib,把所有webapp/lib下得war都移动这个目录。以后只要打war的时候不包括lib包即可,这样war就大大减小。
    要做到用maven中打war包得时候不包括lib包可以进行如下配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.2</version>
        <executions>
            <execution>
                <id>copy-dependencies</id>
                <phase>package</phase>
                            <goals>   
                                <goal>copy-dependencies</goal>
                            </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}/locallib</outputDirectory>
                    <overWriteReleases>false</overWriteReleases>
                    <overWriteSnapshots>false</overWriteSnapshots>
                    <overWriteIfNewer>true</overWriteIfNewer>
                </configuration>
            </execution>
        </executions>
    </plugin>

    其中 <outputDirectory>${project.build.directory}/locallib</outputDirectory> 就是指定war所以依赖的lib包存放目录,与所打的war 在同一级目录

    展开全文
  • 许多普通的Maven项目:可能是老版本的代码维护、也可能单纯的简单的kafka接数、flink处理作业,因为种种原因没有采用SpringBoot,而是建立的普通的Maven项目,那么不同于SpringBoot的打包方式。 指定编译jdk版本 ...

    前言

    许多普通的Maven项目:可能是老版本的代码维护、也可能单纯的简单的kafka接数、flink处理作业,因为种种原因没有采用SpringBoot,而是建立的普通的Maven项目,那么不同于SpringBoot的打包方式。


    指定编译jdk版本

    maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5maven2默认用jdk1.3。所以要指定编译的jdk版本,如果不编译,编译器使用的是maven版本,当然可以快捷修改

    在这里插入图片描述

    	<plugin>
    		<groupId>org.apache.maven.plugins</groupId>
    		<artifactId>maven-compiler-plugin</artifactId>
    		<version>3.1</version>
    		<configuration>
    			<source>1.8</source>
    			<target>1.8</target>
    			<encoding>UTF-8</encoding>
    			 <mainClass>com.sitech.etlUFlink</mainClass>
    		</configuration>
    	</plugin>
    

    不含依赖打包


    直接:mvn clean package -Dmaven.test.skip=true


    含依赖打包

    参考:

    Maven打包的三种方式

    Maven标签说明

    其中下面代码可以直接package打包即可,如果不加executions标签参数则需要:mvn package assembly:single。最后生成:com-xxx-cdry-jar-with-dependencies.jar

    				<plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
    	                <version>2.3</version>
    	                <configuration>
    	                    <descriptorRefs>                     
    	                        <descriptorRef>jar-with-dependencies</descriptorRef>
    	                    </descriptorRefs>
    	                    <archive>
    	                        <manifest>
    	                            <mainClass>com.xxx.cdry</mainClass>
    	                        </manifest>
    	                    </archive>
    	                </configuration>
    	                <executions>
    				        <execution>
    				          <id>make-assembly</id> 
    				          <phase>package</phase> 
    				          <goals>
    				            <goal>single</goal>
    				          </goals>
    				        </execution>
    				      </executions>
    	            </plugin>
    

    运行没有默认主类

    启动命令增加-c参数:-c com.cbry.xx main函数的包绝对路径。

    展开全文
  • 前提:maven构建可执行jar包时,如果项目依赖了pom中定义的dependency之外的外部jar包,maven-jar-plugin默认是不会把这 些额外jar包的依赖信息放在jar文件的MANIFEST.MF文件中的,这会导致jar包运行时出现找不到...
  • allatori第二代Java代码混淆器Maven打包配置,依赖库,以及配置文件。示例运行,可行。
  • Maven打包依赖将依赖的Jar包也打进去

    千次阅读 2020-12-06 21:44:12
    可以在pom.xml中添加如下依赖 注意:一定要写明主类的类全名。 <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest>
  • 使用maven打包jar的时候,默认是把各个项目的jar输入到各自的target目录下。而如果一个项目中包含有N个子项目,人工去把一个个的jar复制出来就太蛋疼了,好在maven有一个maven-antrun-plugin提供了集中复制jar包到...
  • maven打包时引入外部依赖jar

    千次阅读 2018-11-12 18:09:46
    maven打包时引入外部依赖jar 需求说明: A项目项目中依赖了b.jar,但是b.jar并非maven上的jar包,而是直接放在main/resouces/lib的文件夹下,现在A项目项目打包时,需要将b.jar放在A生成的jar包中,结构如下: 实现...
  • Maven 打包时加入本地依赖

    千次阅读 2017-10-23 23:09:35
    Maven 打包时加入本地依赖包 问题描述Maven 工程部署到 Tomcat 后,启动报错,找不到相应的类文件:java.lang.NoClassDefFoundError: com/vmware/vim25/InvalidPropertyFaultMsg问题原因查看报错信息,发现找不到的...
  • 在项目中,在用maven管理依赖的时候,经常用到本地jar包。 <dependency> <groupId>XXX.XXX</groupId> <artifactId>XXX</artifactId> <scope>system</scope> <...
  • 使用springCloud的过程中,发布到生产环境的网速受限,如果每次将60,70M甚至更大的jar包上传,速度太慢了,采取jar包和配置文件分离的方式可以极大的压缩jar包大小,至于依赖的jar包则只需要上传一次,后期增加了jar...
  • maven打包可执行的jar包-包含依赖jar

    千次阅读 2020-12-30 15:54:20
    我这里已经有现成的maven环境和工具类了,这里先使用myeclipse先测试一下maven打包,不包含任何依赖,只包含一个类,里面定义main函数。 public class TestJarApplication{ public static void main(String[] args...
  • maven添加依赖 首先,如何在maven项目中添加依赖包?这个相信对于大部分人来说是非常简单的,在pom.xml文件如下配置: <dependency> <groupId>org.apache.spark</groupId> <...
  • maven如何打包指定某些jar包不在内

    千次阅读 2019-03-27 16:38:33
    在写MR任务的时候,需要打包成一个jar包,提交给hadoop平台使用,但是类似hadoop的依赖包本身平台已经有了,所以不希望再将此类的依赖包打进最终的jar包中。 解决办法: 可以使用maven的scope来使用。 maven的...
  • maven打包中包含依赖包类型情况

    千次阅读 2019-03-08 18:13:33
    有时候在项目开发中,需要很多...一、在pom.xml 文件中配置,将依赖的 jar 包放到指定的文件夹中 在 pom.xml 的 build-plugins 节点上添加以下配置即可 &lt;!-- 将项目的依赖包复制到 target/lib --&gt; ...
  • 指定打包的模块,可以用路径也可以用坐标,如果父项目同时是父目录,那么进入父目录下,直接“-pl 项目目录名”即可; -am 同时打包依赖的模块 -amd 同时打包依赖的模块,及依赖该包的模块 ...
  • Maven如何打包本地依赖包 有的jar包,在maven中心库里面是没有的,那么,如何在项目中使用呢? 假设我们需要使用:apache-ant-zip-2.3.jar 将该jar包,放在项目的lib目录,例如: 在pom.xml里面增加该jar的引用,...
  • maven 打包jar 并连带自己依赖的jar

    万次阅读 2018-09-06 22:25:26
    1. 打包java 程序 为 可以执行的jar   使用maven 插件 添加 assembly maven插件 《manClass》 是你的main 方法 &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;...
  • 打jar包时把依赖打到jar [html] view plain copy  plugins> plugin> artifactId>maven-assembly-pluginartifactId> configuration> descriptorRefs> descript
  • pom文件配置如下 <build> <plugins> <!-- 这个插件是用来打jar包的 --> <plugin> <groupId>org.apache.maven.plugins</groupId>...maven-jar-plugin&l...
  • maven项目带依赖打包 在pom.xml中加入下边的plugn,注意位置 <!-- Maven Assembly Plugin --> <plugin> <groupId>org.apache.maven.plugins</groupId> <...
  • 最近使用maven打包项目时发现会把当前依赖的所有jar先解压...首先按如下目录找到maven打包时用到的插件包(以下路径为用户未修改本地仓库时的默认配置路径,如修改过请按自己路径查找即可):C:\Users\{user目录}\.m2\r
  • 最近工作中使用dubbo架构对外提供接口,dubbo接口放在项目的单独模块中,...后面加入依赖打包的时候将common依赖的其他jar也一并打到jar包中,整个包50M,实际上项目只关注common中定义的数据模型,最完美的只要打包
  • 1、先导出一个个maven项目下的某些包的...注意:maven-jar-plugin插件智能打包本项目下的代码(自己写的代码) <plugin> <artifactId>maven-jar-plugin</artifactId> <executions>...
  • Maven打包(瘦身打包部署),不包含第三方依赖jar包
  • springboot maven 打包的两种方式

    千次阅读 2019-08-23 17:01:28
    一、springboot maven打ja包 1、配置文件不外放 a、maven配置打包插件 <!--打包配置,执行mvn clean package--> ...--maven打war包依赖配置--> <!--<packaging>war<...
  • inteliJ maven 打包时把依赖的包一起打

    千次阅读 2019-12-14 17:27:06
    依赖包和自己的代码分成两个jar <groupId>org.apache.maven.plugins <artifactId>maven-shade-plugin <version>1.2.1 <phase>package <goal>shade ...
  • 有时候我们的项目依赖的jar包比较多,项目会很大,那我们每次部署更新的时候上传都会很慢,起始我们只是想更新里面的代码而已,而那众多的依赖包并不想重新上传,这时候我们就需要将依赖包和项目代码分离开来了 ...
  • 在pom的plugins中配置 org.apache.maven.plugins maven-compiler-plugin lib 1.6

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,326
精华内容 16,930
关键字:

maven打包指定依赖路径