Maven分离配置、依赖
来源:互联网 发布:印第安保留地知乎 编辑:程序博客网 时间:2024/06/05 04:40
文章转自:http://blog.csdn.net/u010376788/article/details/56968353
在用Maven打包项目时,要像Hadoop、Spark、Hive等项目打包之后的文件包含bin、lib、conf之类的文件夹,同时可以动态的修改项目的配置参数,需要如下两步:
在 pom.xml 文件中引入 maven-assembly 插件;
在 assembly.xml 文件中制定各个文件目录。
pom.xml引入maven-assembly插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>true</appendAssemblyId> <descriptors> <descriptor>src/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>maven-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions></plugin>
然后,是src/assembly/assembly.xml文件:
<?xml version="1.0" encoding="UTF-8"?><assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.1 http://maven.apache.org/xsd/assembly-1.1.1.xsd"> <id>all</id> <formats> <format>tar.gz</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>755</fileMode> </fileSet> <fileSet> <directory>src/main/resources</directory> <outputDirectory>conf</outputDirectory> <fileMode>755</fileMode> <lineEnding>unix</lineEnding> <excludes> <exclude>*.formatted</exclude> </excludes> </fileSet> </fileSets> <dependencySets> <dependencySet> <fileMode>755</fileMode> <outputDirectory>lib</outputDirectory> <scope>runtime</scope> <useProjectArtifact>false</useProjectArtifact> <excludes> <exclude>${project.groupId}:${project.artifactId}</exclude> </excludes> </dependencySet> <dependencySet> <fileMode>755</fileMode> <outputFileNameMapping>${project.artifactId}.jar</outputFileNameMapping> <outputDirectory>/lib/</outputDirectory> <scope>runtime</scope> <includes> <include>${project.groupId}:${project.artifactId}</include> </includes> </dependencySet> </dependencySets></assembly>
不难发现,我们把打好的程序jar包也放到了 lib目录 中。
执行代码
用这种方法打的jar包,是不包含依赖的jar包和配置文件的。所以,在执行之前需要把依赖的jar包和配置文件加入到 $CLASSPATH 中,Shell脚本如下:
#!/usr/bin/env bashBIN=`dirname $0`BIN=`cd $BIN; pwd`APP_HOME=`dirname $BIN`JAVA=${JAVA_HOME}/bin/javaCLASSPATH=${APP_HOME}/conf#JAR=${APP_HOME}/tools.jarfor f in ${APP_HOME}/lib/*.jar; do CLASSPATH=${CLASSPATH}:$fdonefor f in ${APP_HOME}/*.jar; do CLASSPATH=${CLASSPATH}:$fdoneMAINCLASS="edu.wzm.joda.JodaDemo"exec "$JAVA" -classpath $CLASSPATH $MAINCLASS
阅读全文
0 0
- Maven分离配置、依赖
- Maven分离配置、依赖
- Maven 配置 Storm 第三方依赖包分离
- IntelliJ IDEA用maven自动打jar包配置(程序和依赖包分离)
- Maven依赖的配置
- Maven排除依赖配置
- Maven -- 依赖范围配置
- Maven依赖的配置
- Log4j maven依赖配置
- maven打包以及配置分离
- Java maven 打包配置分离
- Maven依赖配置和依赖范围
- Maven jar包依赖配置
- Maven多项目依赖配置
- 配置Jstl的Maven依赖
- maven配置依赖本地项目
- Maven多项目依赖配置
- Maven多项目依赖配置
- 散列查找
- CSU 1092: Barricade (dijkstra+heap)
- 如何正确地写出单例模式
- 图文混排
- CodeForces
- Maven分离配置、依赖
- 每日英语阅读(三十二)
- socket(php)(短连接)(无循环,能接发一次,自动关闭)整理版本1
- NOI2002 洛谷P1196 VijosP1443 银河英雄传说
- struts框架404错误总结
- http帮助类
- CSU 1977: Bit-reversal Permutation
- c++中的引用和指针小测试
- 每日英语阅读(三十三)