如何配置pom.xml用maven打包java工程
最近由于项目需要,研究了一下maven的打包,项目要做到
1,生成3个目录/lib,/conf,/bin目录
2,把所有的jar目录编译、拷贝到/lib目录(包括maven的jar包和lib目录下的jar,以及编译的jar包)
3,把所有的启动脚本从工程根目录拷贝到/bin目录
4,把所有的配置文件从src/main/resources拷贝到/conf
下面是配置的pom.xml,我把相关的配置都加了注释,一看就能明白,把build节点拷贝到你们的项目中,就基本可以用了:)
<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>test</groupId><artifactId>test.common</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>test.common</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 这里省略n行 --></dependencies><build><sourceDirectory>src/main/java</sourceDirectory><resources><!-- 把src/main/resources目录下所有的文件拷贝到conf目录中 --><resource><directory>src/main/resources</directory><targetPath>${project.build.directory}/conf</targetPath></resource><!-- 把lib目录下所有的文件拷贝到lib目录中(可能有些jar包没有办法在maven中找到,需要放在lib目录中) --><resource><directory>lib</directory><targetPath>${project.build.directory}/lib</targetPath></resource><!-- 把放在根目录下的脚本文件.sh,.bat拷贝到bin目录中 --><resource><directory>.</directory><includes><include>**/*.sh</include><include>**/*.bat</include></includes><targetPath>${project.build.directory}/bin</targetPath></resource></resources><plugins><!-- 用于编译的plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><fork>true</fork><defaultLibBundleDir>lib</defaultLibBundleDir><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding><!-- 如果配置了JAVA_HOME,下面应该可以不用配 --><executable>C:\Program Files (x86)\Java\jdk1.8.0_91\bin\javac.exe</executable></configuration></plugin><!-- 用于生成jar包的plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.6</version><configuration><!-- 把生成的jar包放在lib目录下(和其他所有jar包一起) --><outputDirectory>${project.build.directory}/lib</outputDirectory><archive><manifest><addClasspath>true</addClasspath><classpathPrefix>lib/</classpathPrefix></manifest></archive><excludes><!-- 排除掉一些文件,不要放到jar包中,这里是为了排除掉src/main/resources中的文件(它们应该放到conf目录)这里只能指定要排除的目标文件,而不能指定源文件,虽然不够完美,但是基本能达到目的。 --><exclude>*.xml</exclude><exclude>*.properties</exclude></excludes></configuration></plugin><!-- 用于拷贝maven依赖的plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>2.10</version><executions><execution><id>copy-dependencies</id><phase>package</phase><goals><goal>copy-dependencies</goal></goals><configuration><!-- 把依赖的所有maven jar包拷贝到lib目录中(这样所有的jar包都在lib目录中) --><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration></execution></executions></plugin><!-- 用于拷贝resource的plugin --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><encoding>UTF-8</encoding></configuration></plugin><!-- 配置生成源代码jar的plugin --><plugin><artifactId>maven-source-plugin</artifactId><version>2.4</version><configuration><attach>true</attach><encoding>UTF-8</encoding><!-- 配置源代码jar文件的存放路径,和其他jar文件一起放在lib目录 --><outputDirectory>${project.build.directory}/lib</outputDirectory></configuration><executions><execution><phase>compile</phase><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build> </project>
然后执行maven package打包。如果是eclipse,在Project Explorer-> Run As –> Maven Build… –>在Goals中输入package,点Run进行编译。
在bin目录下的启动脚本start.bat可以这么写:
@ECHO OFF set CLASSPATH=%JAVA_HOME%/lib set JAVA=%JAVA_HOME%/bin/javaset CLASSPATH=%CLASSPATH%;../conf set JAVA_OPTIONS=-Djava.ext.dirs="../lib""%JAVA%" -Xms512m -Xmx1024m -classpath "%CLASSPATH%" %JAVA_OPTIONS% test.HangqingEntrance
以上:
把conf目录添加到CLASSPATH中,因为conf目录保存的是从src/main/resources拷贝来的配置文件。
设置-Djava.ext.dirs="../lib" 。因为jar包都放在lib目录。
转载于:https://www.cnblogs.com/Binhua-Liu/p/5604841.html
如何配置pom.xml用maven打包java工程相关推荐
- build.xml java打包_配置pom.xml用maven打包java工程的方法(推荐)
下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐).小编觉得挺不错的, 现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近由于项目需要,研究了一下mav ...
- maven 打包普通java配置_配置pom.xml用maven打包java工程的方法(推荐)
最近由于项目需要,研究了一下maven的打包,项目要做到 1,生成3个目录/lib,/conf,/bin目录 2,把所有的jar目录编译.拷贝到/lib目录(包括maven的jar包和lib目录下的j ...
- 【Mybatis】maven配置pom.xml时找不到依赖项(已解决)
我在配置pom.xml依赖时,会冒红. 解决方法: (1)settings->maven目录: 把maven路径改为自己的.具体操作在 [Maven]Maven安装&入门教程笔记_暮色_ ...
- pom.xml设置mysql连接_maven工程配置pom.xml实现mybatis的访问数据库操作
pom.xml配置: pom.xml 这个配置还有不足请在下方给出建议 I: 我这里测试三个 : 分别是有@的 DemoMapper(接口): IDemoMapper.interface packa ...
- Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】
Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...
- spark java pom.xml_使用maven方式创建spark项目(配置pom.xml文件)
创建maven项目后,在pom.xml文件中添加如下配置项: 1.8 1.8 2.10.5 1.6.2 2.6.4 UTF-8 org.apache.spark spark-core_2.11 ${s ...
- 第5步 配置pom.xml文件 pom文件好了就是jar包引入好了
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...
- maven打包java项目为可执行jar文件,资源文件放在外面
一.maven打包 一.maven打包配置文件和jar包放在外面 参考文档 1.1 用eclipse的Maven打包后在target目录 1.2 POM文件的build依赖 <build> ...
最新文章
- pythonclass全局变量_Python-多处理全局变量更新未返回给父级
- ??征集Sql Server2005设置Windows集成认证资料
- 《深入理解java虚拟机》笔记2——GC算法与内存分配策略
- PEP Python Enhancement Proposals(python增强提案\python改进建议书)(重点PEP8)
- R开发(part10)--基于S3的面向对象编程
- HFileOutputFormat与TotalOrderPartitioner
- r-cnn学习(六):RPN及AnchorTargetLayer学习
- 将数据加载到datagridview_JVM系列(一)-- Java类的加载机制
- 小米笔记本 镜像_小米笔记本Pro Windows 10 原装系统镜像
- opencv无获取摄像头视频帧(YUV打开导致失败)
- 什么叫0day和warez
- mysql 页大小_查找最佳页面大小
- CVE-2015-1427(Groovy 沙盒绕过 代码执行漏洞)
- 攻防世界backup
- 绿色计算产业峰会,易捷行云新一代ARM云平台推动绿色计算产业发展
- java8 zoneid_java8之localDateTime, ZoneId, Instant使用
- 即将打破x86和ARM垄断地位的RISC-V,你了解吗?
- 人工智能未来替代的职位,主要有哪些行业?
- QT实现的自定义按键精灵
- 英语词根记忆法(6)
热门文章
- BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游
- 【转载】C# 获取系统时间及时间格式
- linux用户、组、权限问题
- 20162313苑洪铭 第二周作业
- 从cpan上安装perl模块
- 马士兵java视频学习顺序
- MATLAB-Direct access of structure fields returned by a function call is not allowed 的解决方法~
- linux shell 脚本练习,shell脚本小练习
- websphere内存溢出
- leetcode算法题--K站中转内最便宜的航班★