maven打包jar,不依赖spring

2021-05-02 04:27

阅读:468

标签:dir   info   pac   sys   lib   str   prope   通过   example   

  使用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.pluginsgroupId>
          artifactId>maven-jar-pluginartifactId>
          version>2.6version>
          configuration>
              archive>
                manifest>
                      mainClass>com.example.syncprivilege.SyncPrivilegeApplicationmainClass>
          manifest>
        archive>
      configuration>
    plugin>
plugins>

3、其他依赖包需要通过依赖包插件在打包时把依赖包复制到build目录,再进行后续对待打包。网上说的mvn assemble方法无效,依赖包打入了,但会报无主类清单。也许是我没彻底弄对。

            plugin>
                groupId>org.apache.maven.pluginsgroupId>
                artifactId>maven-dependency-pluginartifactId>
                executions>
                    execution>
                        id>copy-dependenciesid>
                        phase>prepare-packagephase>
                        goals>
                            goal>copy-dependenciesgoal>
                        goals>
                        configuration>
                            outputDirectory>${project.build.directory}/liboutputDirectory>
                            overWriteReleases>falseoverWriteReleases>
                            overWriteSnapshots>falseoverWriteSnapshots>
                            overWriteIfNewer>trueoverWriteIfNewer>
                        configuration>
                    execution>
                executions>
            plugin>

 

maven打包jar,不依赖spring

标签:dir   info   pac   sys   lib   str   prope   通过   example   

原文地址:https://www.cnblogs.com/badwood316/p/13205623.html


评论


亲,登录后才可以留言!