ftp4j jar maven依赖_maven打包可运行的jar包(包含依赖工程)

java程序用maven打包的时默认没有加入依赖的jar包的,这是需要修改下pom文件,加入如下plugin

4.0.0

com.app

services

jar

1.0

UTF-8

1.7

org.apache.commons

commons-lang3

3.4

javax.servlet

javax.servlet-api

3.1.0

org.sword.wechat4j

wechat4j

1.2.0

system

${project.basedir}/lib/wechat4j-1.2.0.jar

com.app

base

1.0

jar

BaiGongServer

org.apache.maven.plugins

maven-compiler-plugin

3.1

${jdk.version}

${jdk.version}

org.apache.maven.plugins

maven-dependency-plugin

2.8

copy-dependencies

prepare-package

copy-dependencies

${project.build.directory}/lib

false

false

true

compile

org.apache.maven.plugins

maven-jar-plugin

2.4

true

lib/

baigong.loganalysis.ExtractLog

${project.basedir}/xml/*

内置属性(Maven预定义可以直接使用)

${basedir} 项目根目录

${version}表示项目版本;

${project.basedir}同${basedir};

${project.version}表示项目版本,与${version}相同;

${project.build.directory} 构建目录,缺省为target

${project.build.sourceEncoding}表示主源码的编码格式;

${project.build.sourceDirectory}表示主源码路径;

${project.build.finalName}表示输出文件名称;

${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes

依赖项的作用域

在定义项目的依赖项的时候,我们可以通过scope来指定该依赖项的作用范围。scope的取值有compile、runtime、test、provided、system和import。

compile:这是依赖项的默认作用范围,即当没有指定依赖项的scope时默认使用compile。compile范围内的依赖项在所有情况下都是有效的,包括运行、测试和编译时。

runtime:表示该依赖项只有在运行时才是需要的,在编译的时候不需要。这种类型的依赖项将在运行和test的类路径下可以访问。

test:表示该依赖项只对测试时有用,包括测试代码的编译和运行,对于正常的项目运行是没有影响的。

provided:表示该依赖项将由JDK或者运行容器在运行时提供,也就是说由Maven提供的该依赖项我们只有在编译和测试时才会用到,而在运行时将由JDK或者运行容器提供。

system:当scope为system时,表示该依赖项是我们自己提供的,不需要Maven到仓库里面去找。指定scope为system需要与另一个属性元素systemPath一起使用,它表示该依赖项在当前系统的位置,使用的是绝对路径。

二: 如果要引用本地工程(生产一个jar包),

1: 需要将本地工程A生产jar包,并且将生产的jar添加到本地仓库;

工程A pom配置

4.0.0

com.app

base

1.0

jar

base

UTF-8

junit

junit

4.10

test

org.apache.commons

commons-lang3

3.4

base

org.apache.maven.plugins

maven-compiler-plugin

3.1

1.8

1.8

然后右键工程A,Run As -> Maven Clean , Maven Install ,如果不出错,即可安装到Maven本地仓库中。

2: 在当前要引用的工程B中pom中添加dependency(如上)

用POM Editor 打开pom,

点击 "Add",

然后既可以添加到pom中的dependency中

三:将本地的jar包安装到本地库中,

例如:将IKAnalyzer-5.0.jar 注册到本地库中

在IKAnalyzer-5.0.jar所在的目录中执行cmd命令:

mvn install:install-file -DgroupId=com.lxbglib -DartifactId=IKAnalyzer -Dversion=5.0 -Dpackaging=jar -Dfile=IKAnalyzer-5.0.jar

其中:com.lxbglib 是自定义的groupId

然后在pom.xml 加入

com.lxbglib

IKAnalyzer

5.0

手动打包源码

mvn clean source:jar install

在项目根路径下的target目录也会有 finalName-source.jar ,并且本地仓库就有了finalName-source.jar,

mvn source:jar

在项目根路径下的target目录也会有 finalName-source.jar

自动打包源码

将打包源码绑定在maven的某一个声明周期中,在项目的pom文件中加入maven-source-plugin插件

org.apache.maven.plugins

maven-source-plugin

3.0.1

true

compile

jar

mvn命令如下:

mvn clean 把target目录删掉

mvn clean compile 编译项目至target目录

mvn clean package 编译+打包 至target目录

mvn clean install 编译+打包 至target目录 然后安装到本地仓库

mvn clean deploy 上传jar包到远程仓库

mvn javadoc:jar 打包javadoc文档

如果需要将源码上传到远程仓库,则需deploy,然后再在pom文件中配置远程仓库的地址等信息。

上述两种方式原理相同,均是在声明周期内触发了source plugin插件。

Spring Boot 2.2.0项目报"Unknown"错误的解决

只需在项目的pom.xml中,将maven-jar-plugin 3.1.2降级为3.1.1即可消除Bug。

3.1.1

然后Maven更新项目,Unknown错误消失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值