精华内容
下载资源
问答
  • maven如何打包成zi

    2020-12-31 17:49:00
    maven如何打包成zip pom.xml插件添加 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId...

    maven如何打包成zip

    pom.xml插件添加

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <configuration> <descriptors> <descriptor>src/main/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <!--this is used for inheritance merges 绑定到这个生命周期--> <goals> <goal>single</goal> <!--执行一次--> </goals> </execution> </executions> </plugin>

    assembly.xml文件添加

    <assembly> <id>1.0</id> <formats> <!--支持的打包格式有zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、jar、dir、war--> <format>zip</format> </formats> <dependencySets> <!-- 用来定制工程依赖 jar 包的打包方式,依赖包的输出路径 --> <dependencySet> <outputDirectory>/libs</outputDirectory> <!--依赖jar包的输出目录--> <useProjectArtifact>false</useProjectArtifact> <includes> <!--指定把哪些依赖包放进去 --> <!--如果不指定 则所有的依赖都会打入,但是有的时候 我们只需要打特定依赖的包--> <include>net.sf.jsi:jsi</include> <include>net.sf.trove4j:trove4j</include> </includes> </dependencySet> </dependencySets> <includeBaseDirectory>true</includeBaseDirectory> <fileSets><!--这里指定需要包含的其他文件--> <fileSet> <!--管理一组文件的存放位置--> <outputDirectory>/</outputDirectory> <!--放在哪--> <directory>target</directory><!--源目录--> <includes> <include>*.jar</include> <!--代码的jar包--> </includes> <excludes> <exclude>*sources.jar</exclude> </excludes> </fileSet> <fileSet> <directory>src\main\resources</directory> <!--配置文件源目录--> <outputDirectory>config</outputDirectory> </fileSet> <fileSet> <outputDirectory>/shell</outputDirectory> <directory>src/main/resources/shell</directory> <includes> <include>*/*.sh</include> <!--把shell脚本打进去--> <include>*/*.conf</include> <!--把conf文件打进去--> </includes> </fileSet> </fileSets> </assembly>

    结果展示

    展开全文
  • Maven如何打包本地依赖包 有的jar包,在maven中心库里面是没有的,那么,如何在项目中使用呢? 假设我们需要使用:apache-ant-zip-2.3.jar 将该jar包,放在项目的lib目录,例如: 在pom.xml里面增加该jar的引用,...

    1、Maven内置变量说明:

    • ${basedir} 项目根目录
    • ${project.build.directory} 构建目录,缺省为target
    • ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
    • ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
    • ${project.packaging} 打包类型,缺省为jar
    • ${project.xxx} 当前pom文件的任意节点的内容

    Maven如何打包本地依赖包

    有的jar包,在maven中心库里面是没有的,那么,如何在项目中使用呢?

    假设我们需要使用:apache-ant-zip-2.3.jar

    将该jar包,放在项目的lib目录,例如:

    image

    在pom.xml里面增加该jar的引用,例如:

    image

            <dependency>
                <groupId>org.apache</groupId>
                <artifactId>apache-ant-zip</artifactId>
                <version>2.3</version>
                <scope>system</scope> 
                <systemPath>${basedir}/lib/apache-ant-zip-2.3.jar</systemPath>                 
            </dependency>

    这样就可以在项目中使用apache-ant-zip-2.3.jar了!

    这里有个问题,在项目打包成war的时候,如何将apache-ant-zip-2.3.jar包含在内呢?

    其实在pom.xml里面做个配置即可,例如:

    image

     

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
            <warName>${project.artifactId}</warName>
            <webResources>
                <resource>
                    <directory>lib/</directory>//此处是本地依赖包的路径
                    <targetPath>WEB-INF/lib</targetPath>
                    <includes>
                        <include>**/*.jar</include>
                    </includes>
                </resource>
            </webResources>                   
        </configuration>
    </plugin>

     

    当然在include里面,也是可以打包其他的文件的,诸如xml,properties等配置文件。

    打包以后,发现apache-ant-zip-2.3.jar果然已经在war包里面。

    image

     

    大功告成!

    花间一壶酒,独酌无相亲。 

    举杯邀明月,对影成三人。 

    展开全文
  • 1.首先你得有自己的maven 2.找到自己的maven的setting.xml文件 配置方式如下 &lt;servers&gt; &lt;server&gt; &lt;id&gt;maven-releases&lt;/id&gt; &lt;username&...
    1.首先你得有自己的maven
    
    2.找到自己的maven的setting.xml文件
       
        配置方式如下
        <servers>
          <server>
                <id>maven-releases</id>
                <username>kunge</username>
                <password>kunge123</password>
           </server>
          <server>
                <id>maven-snapshots</id>
                <username>kunge</username>
                <password>kunge123</password>
          </server>
        </servers>
        这里配置的用户名和密码根据自己仓库设置的配置
    3.这个修改好的之后idea会提示让你导入包,这个地方一定要导入包,否则在发布到maven的时候就会出现401的问题
    
        具体错误展示:
        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy (default-deploy) on project ons:
         Failed to deploy artifacts: Could not transfer artifact com.jiahui:ons:jar:1.0.0-20180613.031401-6 from/to maven-snapshots 
         (http://10.2.103.10:8081/repository/maven-snapshots/): 
         Failed to transfer file: http://192.168.52.130:8081/repository/maven-snapshots/com/jiahui/ons/1.0.0-SNAPSHOT/ons-1.0.0-20180613.031401-6.jar. 
         Return code is: 401, ReasonPhrase: Unauthorized. -> [Help 1]
    
    3.idea使用自己配置的maven的配置文件 
    
        eg:
        maven的文件目录
        D:/apache-maven-3.5.2 
        maven的setting.xml文件目录
        D:\apache-maven-3.5.2\conf\settings.xml
    
    4.在项目的最外层配置打包到maven私服的pom内容
       
        具体配置如下:
          <repositories>
               <repository>
                   <id>nexus</id>
                   <name>local private nexus</name>
                   <url>http://192.168.52.130:8081/repository/maven-public/</url>
                   <releases>
                       <enabled>true</enabled>
                   </releases>
                   <snapshots>
                       <enabled>true</enabled>
                   </snapshots>
               </repository>
           </repositories>
       
           <pluginRepositories>
               <pluginRepository>
                   <id>nexus</id>
                   <name>local private nexus</name>
                   <url>http://192.168.52.130:8081/repository/maven-public/</url>
    
                   <releases>
    
    <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <distributionManagement> <repository> 这个id的名称要和server里面配置的id名称保持一致 <id>maven-releases</id> <name>Releases</name> 指定自己需要发布的maven私服 <url>http://192.168.52.130:8081/repository/maven-releases/</url>
               </repository>
    
    <snapshotRepository> 这个id的名称要和server里面配置的id名称保持一致 <id>maven-snapshots</id> <name>Snapshot</name> 指定自己需要发布的maven私服 <url>http://192.168.52.130:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement> 5.这些都配置好之后点开idea的maven的命令行,也就是Maven Projects打开自己模块的(我的模块也就是redis)-->Lifecycle-->deploy,点击deploy等待一会 成功的标志: [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.827 s [INFO] Finished at: 2018-06-13T11:02:20+08:00 [INFO] Final Memory: 25M/314M [INFO] ------------------------------------------------------------------------6.到自己的maven私服里面看看自己刚刚上传的jar eg: 打开maven私服仓库 [go](http://192.168.52.130:8081/#browse/browse) Browse | maven-snapshots(或者maven-releases) |--------com |--jiahui | redis--1.0-2018612.092029-1(jar所在的文件夹) | ons --1.0.0-20180613.030218-5(jar所在的文件夹) | oss --1.0.0-20180613.014829-5(jar所在的文件夹)
    展开全文
  • Maven 如何打包可运行jar包

    千次阅读 2017-08-15 16:50:46
    目标 可以执行jar maven 打包可执行jar ...上一篇文章我们介绍了mvn package可以打包,那么如果是一个可执行的jar包,该如何打包呢?可以执行jar拥有函数入口(public static void main(String[] ar

    目标

    解决可执行jar包的打包问题;上一篇文章我们介绍了mvn package可以打包,那么如果是一个可执行的jar包,该如何打包呢?

    可以执行jar

    拥有函数入口(public static void main(String[] args) {}),我们可以通过java -jar xxx.jar 来执行进入这个main函数。打成可执行效果,是通过mainfest.mf文件来指定的。因此如果不依赖其他工具进行打包,需要手动添加 MANIFEST.MF 到 META-INF/MANIFEST.MF
    例如:
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: wangzhiping
    Created-By: Apache Maven 3.1.0
    Build-Jdk: 1.8.0_101
    Main-Class: wzp.study.maven.mainclass.HelloWorld

    maven 打包可执行jar

    maven-jar-plugin

    • pom.xml 配置
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>study.wzp.maven</groupId>
      <artifactId>maven-hello</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
      <name>maven-hello</name>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
              <archive>
                <manifest>
                  <!-- META-INF/MANIFEST.MF 添加 Main-Class: -->
                  <mainClass>study.wzp.maven.App</mainClass>
    
                  <!-- META-INF/MANIFEST.MF 添加 ClassPath: 外部依赖指定  -->
                  <addClasspath>true</addClasspath>
    
                  <!-- META-INF/MANIFEST.MF : 指定依赖包所在目录前缀 -->
                  <classpathPrefix>/lib</classpathPrefix>
                </manifest>
              </archive>
            </configuration>
          </plugin>
    
          <!-- 自动实现将依赖拷贝到 lib 目录下,不然需要手动的执行-->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-dependencies</id>
                <phase>package</phase>
    
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
    
                <configuration>
                  <!-- ${project.build.directory} 这是项目属性,后续篇章会有讲述 -->
                  <outputDirectory>${project.build.directory}/lib</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    • MANIFEST.MF
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: wangzhiping
    Class-Path: /lib/junit-4.10.jar /lib/hamcrest-core-1.1.jar
    Created-By: Apache Maven 3.1.0
    Build-Jdk: 1.8.0_101
    Main-Class: study.wzp.maven.App
    • 生成的目录
      这里写图片描述
      这里写图片描述
    使用maven-jar-plugin,存在外部依赖时,需要指定外部依赖的位置(建议使用:maven-dependency-plugin)帮助管理,不能打包在一块,感觉不是很方便。

    详细参考: https://maven.apache.org/plugins/maven-jar-plugin/

    maven-shade-plugin

    • pom.xml 配置
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>study.wzp.maven</groupId>
      <artifactId>maven-hello</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <name>maven-hello</name>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.10</version>
        </dependency>
      </dependencies>
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
              <execution>
                <phase>package</phase>
                <goals>
                  <goal>shade</goal>
                </goals>
                <configuration>
                  <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                      <mainClass>study.wzp.maven.App</mainClass>
                    </transformer>
                  </transformers>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
    • MANIFEST.MF
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: wangzhiping
    Created-By: Apache Maven 3.1.0
    Build-Jdk: 1.8.0_101
    Main-Class: study.wzp.maven.App
    • 项目目录
      这里写图片描述
    会生成maven-hello-1.0-SNAPSHOT.jar 和 origin-maven-hello-1.0-SNAPSHOT.jar 两个打包文件,
    1、maven-hello-1.0-SNAPSHOT.jar :将依赖一起合并打包的jar;
    2、origin-maven-hello-1.0-SNAPSHOT.jar:不包含任何依赖的jar,如果存在依赖,那么这个文件会报错;

    详细使用参考:https://maven.apache.org/plugins/maven-shade-plugin/

    maven-assembly-plugin

    • pom.xml 配置
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>study.wzp.maven.App</mainClass>
                </manifest>
              </archive>
              <descriptorRefs>
                <descriptorRef>with-dependencies</descriptorRef>
              </descriptorRefs>
    
            </configuration>
            <executions>
              <execution>
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
              </execution>
            </executions>
    </plugin>
    • 项目目录
        与shade相比,基本一致,会生成两个文件
    1、maven-hello-1.0-SNAPSHOT.jar:无依赖关系,不可执行;
    2、maven-hello-1.0-SNAPSHOT-jar-with-dependencies.jar:依赖合并打包,可执行。

    详细可参考:https://maven.apache.org/plugins/maven-assembly-plugin/

    总结

    如果打包可执行jar,建议使用maven-shade-plugin或者maven-assembly-plugin,一起打包会更好些。可以直接执行。

    参考:

    [1] http://blog.csdn.net/xiao__gui/article/details/47341385
    [2] https://baike.baidu.com/item/MANIFEST.MF

    展开全文
  • Maven如何打包可执行jar包

    千次阅读 2018-09-16 17:14:27
    假设我有一个maven项目叫:hello-world 新建一个HelloWorld类: package com.dylan.mvnbook.helloworld; public class HelloWorld { public String sayHello() { return "Hello Maven"; } ...
  • Maven如何打包本地Jar包

    千次阅读 2017-06-19 17:56:46
    Maven的中心仓库http://mvnrepository.com/是非常强大的,很多的jar包都可以从其中找到,但是确实存在着无法从中心仓库找到的情况,一种可能是...那么,针对这两种情况,如何在项目中使用呢? 假设我们需要使用:org
  • maven如何打包源代码

    2014-12-12 22:27:16
    将下面代码,复制到pom.xml文件中即可。 maven-source-plugin 2.1 true compile jar
  • Maven如何打包源码

    2013-04-10 13:39:00
     配置中指定了phase为compile,意思是在生命周期compile的时候就将源文件打包,即只要执行的mvn命令包括compile这一阶段,就会将源代码打包。同样,phase还可以指定为package、install等等。 ### 单独的打源码包可...
  • 有的jar包,在maven中心库里面是没有的,那么,如何在项目中使用呢? 假设我们需要使用:apache-ant-zip-2.3.jar 将该jar包,放在项目的lib目录,例如: 在pom.xml里面增加该jar的引用,例如: <dependency> &...
  • maven如何打包指定某些jar包不在内

    千次阅读 2019-03-27 16:38:33
    在写MR任务的时候,需要打包成一个jar包,提交给hadoop平台使用,但是类似hadoop的依赖包本身平台已经有了,所以不希望再将此类的依赖包打进最终的jar包中。 解决办法: 可以使用maven的scope来使用。 maven的...
  • 至于如何打包,idea里,右侧点击maven展开,然后点击lifecycle,点击package或者是install命令都可以打包。 打包后在控制台可以找到包的路径。 至于要打jar包还是war包,取决于pom文件的配置 如下 如果要...
  • <distributionManagement> <repository> <id>archivaServer</id> <url>http://localhost:8080/repository/internal</url> </repository> <snapshotRepository>...
  • org.apache.maven.plugins groupId > < artifactId > maven-war-plugin artifactId > < version > 2.2 version > < configuration > < webResources > < resources > <!-- 源文件夹 --> < ...
  • maven ${project.build.directory}/classes src/main/resources true **/*.xml **/*.properties ${project.build.directory}/classes/META-INF src/ma
  • maven项目如何打包

    2020-06-07 16:07:01
    (2)瘦包:直接打包,不打包依赖包,仅打包出项目中的代码到JAR包中。 1.打瘦包 2.打胖包 第一种:只打胖包 快捷键:Alt+shirt+ctrl+s 定入口函数和胖包的保存路径 开始打包 打胖包完成 3.同时打胖包和瘦包 ...
  • 文章目录跳过Maven 打包时的测试,跳过Maven 打包测试1、使用Maven 插件2、使用打包参数【推荐】 跳过Maven 打包时的测试,跳过Maven 打包测试 1、使用Maven 插件 修改POM文件 <project> [...] <build...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,099
精华内容 839
关键字:

maven如何打包