maven打包jar,不依赖spring
Posted Badwood-涂鸦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven打包jar,不依赖spring相关的知识,希望对你有一定的参考价值。
使用pigx的定时任务,通过直接加载jar包的方式运行job,需要一个独立的jar应用。简单的应用只使用了ftp和简单的。一直都使用spring+mybatis+druid方式,尝试剥离spring框架(为何会感觉Spring也太重了?),直接用maven来打jar包,并将依赖的jar包一起打入。
1、maven新建的空应用,啥都没有,自己建package、建主类、敲main函数。
package com.example.syncprivilege; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.InputStream; import java.sql.Connection; import java.util.Properties; public class SyncPrivilegeApplication { public static void main(String[] args) { try { //1.加载配置文件 Properties pro = new Properties(); InputStream is = SyncPrivilegeApplication.class.getClassLoader().getResourceAsStream("druid.properties"); pro.load(is); //2.获取连接池对象 DataSource ds = DruidDataSourceFactory.createDataSource(pro); //3.获取连接 Connection conn = ds.getConnection(); System.out.println(conn); }catch (Exception e){ e.printStackTrace(); } } }
2、直接运行会报没有主清单属性,主要是META_INFO目录下要配置,通过使用maven的打包插件来完成
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6<version> <configuration> <archive> <manifest> <mainClass>com.example.syncprivilege.SyncPrivilegeApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
3、其他依赖包需要通过依赖包插件在打包时把依赖包复制到build目录,再进行后续对待打包。网上说的mvn assemble方法无效,依赖包打入了,但会报无主类清单。也许是我没彻底弄对。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin>
以上是关于maven打包jar,不依赖spring的主要内容,如果未能解决你的问题,请参考以下文章
Maven 打包“JAR”不适用于 spring-boot-starter-batch
maven-jar-plugin 可以把依赖的jar包一起打包吗