zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    连接过滤器
    插件使用 之 Bmap
    插件使用 之 ztree、nicescroll
    插件使用 之 layui、echart
    插件使用 之 bootstrap
    jquery显隐特效 动画 事件
    jquery js对比 加载 操作内容 属性 样式 元素 选择器
    js三级联动练习(地址填写)
    js时间、定时器、移动div块、轮播
    js DOM操作
  • 原文地址:https://www.cnblogs.com/badwood316/p/13205623.html
Copyright © 2011-2022 走看看