最近由于项目需要,研究了一下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工程相关推荐

  1. build.xml java打包_配置pom.xml用maven打包java工程的方法(推荐)

    下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐).小编觉得挺不错的, 现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 最近由于项目需要,研究了一下mav ...

  2. maven 打包普通java配置_配置pom.xml用maven打包java工程的方法(推荐)

    最近由于项目需要,研究了一下maven的打包,项目要做到 1,生成3个目录/lib,/conf,/bin目录 2,把所有的jar目录编译.拷贝到/lib目录(包括maven的jar包和lib目录下的j ...

  3. 【Mybatis】maven配置pom.xml时找不到依赖项(已解决)

    我在配置pom.xml依赖时,会冒红. 解决方法: (1)settings->maven目录: 把maven路径改为自己的.具体操作在 [Maven]Maven安装&入门教程笔记_暮色_ ...

  4. pom.xml设置mysql连接_maven工程配置pom.xml实现mybatis的访问数据库操作

    pom.xml配置: pom.xml 这个配置还有不足请在下方给出建议 I:  我这里测试三个 : 分别是有@的 DemoMapper(接口): IDemoMapper.interface packa ...

  5. Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】

    Java后端 学习路线 笔记汇总表[黑马程序员] 黑马程序员(腾讯微云)Maven基础讲义.pdf Maven-学习笔记01[基础-Maven基本概念] Maven-学习笔记02[基础-Maven的安 ...

  6. 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 ...

  7. 第5步 配置pom.xml文件 pom文件好了就是jar包引入好了

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用

    Java Web/Eclipse/Maven/Tomcat 最近有个新项目是java web项目,记录一下,可能比较乱.虽然没接触过Java,但是eclipse还是用过的 初识项目 同事说,项目是ma ...

  9. maven打包java项目为可执行jar文件,资源文件放在外面

    一.maven打包 一.maven打包配置文件和jar包放在外面 参考文档 1.1 用eclipse的Maven打包后在target目录 1.2 POM文件的build依赖 <build> ...

最新文章

  1. pythonclass全局变量_Python-多处理全局变量更新未返回给父级
  2. ??征集Sql Server2005设置Windows集成认证资料
  3. 《深入理解java虚拟机》笔记2——GC算法与内存分配策略
  4. PEP Python Enhancement Proposals(python增强提案\python改进建议书)(重点PEP8)
  5. R开发(part10)--基于S3的面向对象编程
  6. HFileOutputFormat与TotalOrderPartitioner
  7. r-cnn学习(六):RPN及AnchorTargetLayer学习
  8. 将数据加载到datagridview_JVM系列(一)-- Java类的加载机制
  9. 小米笔记本 镜像_小米笔记本Pro Windows 10 原装系统镜像
  10. opencv无获取摄像头视频帧(YUV打开导致失败)
  11. 什么叫0day和warez
  12. mysql 页大小_查找最佳页面大小
  13. CVE-2015-1427(Groovy 沙盒绕过 代码执行漏洞)
  14. 攻防世界backup
  15. 绿色计算产业峰会,易捷行云新一代ARM云平台推动绿色计算产业发展
  16. java8 zoneid_java8之localDateTime, ZoneId, Instant使用
  17. 即将打破x86和ARM垄断地位的RISC-V,你了解吗?
  18. 人工智能未来替代的职位,主要有哪些行业?
  19. QT实现的自定义按键精灵
  20. 英语词根记忆法(6)

热门文章

  1. BZOJ5020: [THUWC 2017]在美妙的数学王国中畅游
  2. 【转载】C# 获取系统时间及时间格式
  3. linux用户、组、权限问题
  4. 20162313苑洪铭 第二周作业
  5. 从cpan上安装perl模块
  6. 马士兵java视频学习顺序
  7. MATLAB-Direct access of structure fields returned by a function call is not allowed 的解决方法~
  8. linux shell 脚本练习,shell脚本小练习
  9. websphere内存溢出
  10. leetcode算法题--K站中转内最便宜的航班★