有时候我们想要做一些java 的小程序,需要把打包成jar,单独执行,做一个maven项目,maven非常方便,有自动打包成jar的插件,但是有时候我们的项目可能会依赖其他的jar包,所以非常麻烦。

笔者最近遇到一个小问题,公司的工程有定时执行任务,有时候会出现不执行的情况或执行错误,所以需要些一个附加功能,可以人工手动执行。如果在页面放按钮重新执行一次,怕出现权限问题,写webservice然后再写外部的jar调用webservice,虽然很简单,但是要在原来的项目上写,写完之后还要交给测试部测试,测试部测试之后还要领导审批,才能上线使用,所以决定写一个外部的jar。

这是我的文件目录,写的一般,请诸君批评指正。

现在有点头疼的是,成了一个jar,需要依赖很多外部的jar,在百度和自己尝试之后,终于写好了,pom配置中plugins如下:

<plugins>

           <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-jar-plugin</artifactId>

              <version>2.4</version>

              <configuration>

                  <archive>

                     <manifest>

                         <addClasspath>true</addClasspath>

                         <classpathPrefix>lib/</classpathPrefix>

                         <mainClass>com.coamctech.historyreport.App</mainClass>

                     </manifest>

                  </archive>

              </configuration>

           </plugin>

              <plugin> 

            <groupId>org.apache.maven.plugins</groupId> 

            <artifactId>maven-assembly-plugin</artifactId> 

            <version>2.4</version> 

            <!-- The configuration of the plugin --> 

            <configuration> 

                <!-- Specifies the configuration file of the assembly plugin --> 

                <descriptors> 

                    <descriptor>src/main/assembly/package.xml</descriptor> 

                </descriptors> 

            </configuration> 

            <executions> 

                <execution> 

                    <id>make-assembly</id> 

                    <phase>package</phase> 

                    <goals> 

                        <goal>single</goal> 

                    </goals> 

                </execution> 

            </executions> 

        </plugin> 

       </plugins>

使用了assembly插件,引入他的配置文件:

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <id>bin</id>

    <!-- 最终打包成一个用于发布的zip文件 -->

    <formats>

        <format>zip</format>

    </formats>

    <!-- Adds dependencies to zip package under lib directory -->

    <dependencySets>

        <dependencySet>

            <!--

               不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录

           -->

            <useProjectArtifact>false</useProjectArtifact>

            <outputDirectory>lib</outputDirectory>

            <unpack>false</unpack>

        </dependencySet>

    </dependencySets>

    <fileSets>

        <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->

        <fileSet>

            <directory>${project.basedir}</directory>

            <outputDirectory>/</outputDirectory>

            <includes>

                <include>README*</include>

                <include>LICENSE*</include>

                <include>NOTICE*</include>

            </includes>

        </fileSet>

        <!-- 把项目的配置文件,打包进zip文件的config目录 -->

        <fileSet>

            <directory>${project.basedir}\src\main\resources</directory>

            <outputDirectory></outputDirectory>

            <includes>

                <include>*.xml</include>

                <include>*.properties</include>

            </includes>

        </fileSet>

        <!-- 把项目的脚本文件目录( src/main/scripts )中的启动脚本文件,打包进zip文件的跟目录 -->

        <fileSet>

            <directory>${project.basedir}\src\main\bin</directory>

            <outputDirectory></outputDirectory>

            <includes>

                <include>startup.*</include>

            </includes>

        </fileSet>

        <!-- 把项目的脚本文件(除了启动脚本文件),打包进zip文件的script目录 -->

<!--      <fileSet>

            <directory>${project.build.scriptSourceDirectory}</directory>

            <outputDirectory></outputDirectory>

            <excludes>

                <exclude>startup.*</exclude>

           </excludes>

        </fileSet>  -->

        <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->

        <fileSet>

            <directory>${project.build.directory}</directory>

            <outputDirectory></outputDirectory>

            <includes>

                <include>*.jar</include>

            </includes>

        </fileSet>

    </fileSets>

</assembly>

参考博客:

http://blog.csdn.net/WANGYAN9110/article/details/38646677/

Maven项目打包jar依赖外部jar的更多相关文章

  1. 将Maven项目打包成可执行jar文件(引用第三方jar)

    方法一. mvn assembly 或 mvn package (一个jar包) 把依赖包和自己项目的文件打包如同一个jar包(这种方式对spring的项目不支持) <build>     ...

  2. Maven项目打包成可执行Jar文件

    在使用Maven完成项目以后,如果需要打包成可执行的Jar文件,我们通过eclipse的导出很麻烦,还得指定入口文件的位置,还得说明依赖的jar包,既然都使用Maven了,很重要的一个目的就是让这些繁 ...

  3. 通过idea 打包 spring maven项目打包为可执行jar包

    用assembly打包一直报错: shangyanshuodeMacBook-Pro:target shangyanshuo$ java -jar jobscrawler-1.0-SNAPSHOT-j ...

  4. maven项目中 把依赖的jar包一起打包

    1.pom.xml 配置文件: 在pom.xml配置文件中添加 <build> <plugins> <plugin> <artifactId>maven ...

  5. 将Maven项目打包成可执行 jar文件(引用第三方jar)

    使用maven assembly插件完成打包 修改pom: <build> <pluginManagement> <plugins> <!--设置jdk版本, ...

  6. Eclipse里面的Maven项目如果下载依赖的jar包的源码

    Window---------Properties---------------Maven--------------勾选Download Artifact Sources和Download Arti ...

  7. eclipse下将maven项目打包为jar(1.不带第三方jar,2.带第三方jar)

    由于项目需要讲maven项目打包为jar包,由于之前没类似经验,百度找例子走了不少弯路,这边随手记录下,网上说的 开发工具:eclipse jar包管理:maven 一般打包出来的jar包分为两种 一 ...

  8. Maven项目打包,Jar包不更新的问题

    问题: 我的maven项目A要打成Jar包A,依赖了另外一个项目B生成的Jar包B.更改了项目B的代码,然后继续打包项目A,生成的Jar包A中并没有我修改了的代码. 原因: Jar包B在开始时被Ins ...

  9. 如何将maven项目打包成可执行的jar

    如何将maven项目打包成可执行的jar 分类: maven2010-12-17 10:18 10411人阅读 评论(2) 收藏 举报 jarmavenassemblyjava 方法一:将项目及所依赖 ...

随机推荐

  1. Node.js Express4.x生成程序骨架

    express 4.x版本中将命令工具分出来了,需要再安装一个命令工具,执行命令“npm install -g express-generator”完成后再测试就可以了. 最后通过"expr ...

  2. 【百度之星2014~复赛 解题报告~正解】The Query on the Tree

    声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站 ...

  3. FocusBI: 总线矩阵(原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277 获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.com/ ...

  4. chmod修改文件的权限/chown修改文件和目录的所有者(转)

    ll指令的显示的信息为(当前目录下只有nameservice1一个目录): drwxr-xr-x 3 hdfs hdfs 4096 4月 14 16:19 nameservice1 上述信息分别表示: ...

  5. 问题集录06--SpringBoot创建Maven项目

    1. 如下图,打开idea之后,file -> new -> project2. 如下图,在弹出的new project 页面,选择maven -> 勾选Create from ar ...

  6. Grunt:任务自动管理工具(收藏+转载)

    原文:http://javascript.ruanyifeng.com/tool/grunt.html 安装 命令脚本文件Gruntfile.js Gruntfile.js实例:grunt-contr ...

  7. 行内元素的margin只能左右有效。上下无效。

    行内元素的margin只能左右有效.上下无效.

  8. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)

    一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...

  9. Filter的常见应用

    1.字符编码过滤器 实现功能,在a.jsp中填写用户名提交到b.jsp,在b.jsp中读取参数名. a.jsp <body> <form action="encoding/ ...

  10. JavaScript事件流--事件冒泡、目标与事件捕获

    1.事件冒泡 微软提出了名为事件冒泡的事件流.事件冒泡可以形象地比喻为把一颗石头投入水中,泡泡会一直从水底冒出水面.也就是说,事件会从最内层的元素开始发生,一直向上传播,直到document对象. 因 ...