一.下载的jar包发布maven本地依赖
下载的jar包无法正常引入maven依赖时,需要先安装到本地maven库才可以在其它maven工程中正常引入依赖。
例如我们下载的JAR包是es-indexer.jar则可以进行以下操作进行安装:
1.将jar包重命名为 es-indexer-1.0.jar 然后执行命令:
(下面是同一命令的两种格式)
$ mvn install:install-file -Dfile=es-indexer-1.0.jar -DgroupId=es-indexer -DartifactId=ex-indexer -Dversion=1.0 -Dpackaging=jar
$ mvn install:install-file \
> -Dfile=es-indexer-1.0.jar \
> -DgroupId=es-indexer \
> -DartifactId=ex-indexer \
> -Dversion=1.0 \
> -Dpackaging=jar
显示如下则为安装成功:
2.下载的jar安装到本地库之后,通过添加如下依赖引入:
<dependency>
<groupId>es-indexer</groupId>
<artifactId>ex-indexer</artifactId>
<version>1.0</version>
</dependency>
另外插播一条异常(在使用eclipse的maven插件进行打包es工程的时候出现的,这条异常与工程本身结构有关系比较难解决所以写代码的时候需要多测测):
二.JAR包服务器部署
1.直接使用maven打JAR包进行部署
执行maven install之后在本地target目录下生成的文件如下所示:
pom文件配置如下:
<dependencies>
......
<!--引入的一些依赖包-->
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- 此处指定main方法入口的class -->
<archive>
<manifest>
<!-- <mainClass>nn_monitor</mainClass> -->
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 拷贝依赖的jar包到lib目录 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- 解决使用maven update project java版本自动切换问题 -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
2.使用eclipse自带打包工具
如果maven打包失败则直接使用eclipse自带打包工具打JAR包:
(如果想要在shell脚本中指定多个主类,直接选择jar file导出而不是runnable jar file,但是这种方式需要自己额外配置MF文件)