精华内容
下载资源
问答
  • maven项目打包成tar.gz格式

    万次阅读 2016-08-07 11:08:12
    java项目由maven管理构建时,最常见的是打jar包或war包,但实际项目中,有可能构建出zip包或tar包,本文介绍使用maven-assembly构建tar.gz文件形式。通常一个项目可能还包含其他的外部配置文件,或者自定义的shell...

    maven项目打包成tar.gz格式

    一、背景

    java项目由maven管理构建时,最常见的是打成jar包或war包,但实际项目中,有可能构建出zip包或tar包,本文介绍使用maven-assembly构建tar.gz文件形式。

    二、构建步骤

    通常一个项目可能还包含其他的外部配置文件,或者自定义的shell脚本或者bat命令等,此时应该使用assemble命令来进行构建。assembly,即组合构建的意思,使用此插件可以整合你想要的文件到最终的tar包中。

    使用到的配置:pom.xml,test-assembly.xml

    调用方式:pom.xml文件中调用test-assembly.xml

    首先定义test-assembly.xml:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    
        <id>test-${project.version}-bin</id>
        <formats>
            <format>tar.gz</format>
        </formats>
        <baseDirectory>xhh-test-${project.version}</baseDirectory>
        <!--<dependencySets>-->
            <!--<dependencySet>-->
                <!--<useProjectArtifact>false</useProjectArtifact>-->
                <!--<outputDirectory>lib</outputDirectory>-->
                <!--<scope>runtime</scope>-->
            <!--</dependencySet>-->
        <!--</dependencySets>-->
        <fileSets>
            <fileSet>
                <directory>${basedir}/bin</directory>
                <lineEnding>unix</lineEnding>
                <fileMode>0744</fileMode>
            </fileSet>
            <fileSet>
                <directory>${basedir}/conf</directory>
                <excludes>
                    <exclude>test-env.sh</exclude>
                    <exclude>**/move/**</exclude>
                </excludes>
            </fileSet>
            <fileSet>
                <directory>${basedir}/logs</directory>
            </fileSet>
            <fileSet>
                <directory>${basedir}/tomcat</directory>
            </fileSet>
            <fileSet>
                <directory>${basedir}/jdk</directory>
            </fileSet>
            <fileSet>
                <directory>${basedir}/software</directory>
            </fileSet>
            <fileSet>
                <directory>${basedir}/scripts</directory>
                <lineEnding>unix</lineEnding>
                <fileMode>0744</fileMode>
            </fileSet>
            <fileSet>
                <directory>${basedir}/data</directory>
            </fileSet>
            <fileSet>
                <directory>${basedir}/../../xhh-test</directory>
                <excludes>
                    <exclude>**/classes/**</exclude>
                    <exclude>*/web.xml</exclude>
                </excludes>
                <outputDirectory>/webapps/test</outputDirectory>
            </fileSet>
        </fileSets>
        <files>
            <file>
                <source>${basedir}/README.md</source>
            </file>
            <file>
                <source>${basedir}/conf/bdoc-env.sh</source>
                <lineEnding>unix</lineEnding>
                <outputDirectory>/conf</outputDirectory>
            </file>
        </files>
    </assembly

    然后定义pom.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <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>
        <parent>
            <groupId>com.xhh.test</groupId>
            <artifactId>xhh-test</artifactId>
            <version>2.1.0</version>
        </parent>
        <artifactId>xhh-test-packaging</artifactId>
        <name>Packaging TEST</name>
        <packaging>pom</packaging>
        <!--<url>http://maven.apache.org</url>-->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
        <dependencies>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <appendAssemblyId>true</appendAssemblyId>
                        <!--<finalName>${project.name}</finalName>-->
                        <finalName>bc-bdoc</finalName>
                        <descriptors>
                            <descriptor>***test-assembly.xml***</descriptor>                    </descriptors>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly-tar</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
        <profiles>
            <profile>
                <id>unix</id>
                <activation>
                    <property>
                        <name>env</name>
                        <value>unix</value>
                    </property>
                </activation>
                <build>
                <plugins>
                <plugin>
                    <artifactId>exec-maven-plugin</artifactId>
                    <groupId>org.codehaus.mojo</groupId>
                    <executions>
                        <execution>
                            <id>uncompress</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <executable>sh</executable>
                                <arguments>
                                    <argument>${basedir}/scripts/unpack.sh</argument>
                                </arguments>
                            </configuration>
                        </execution>
                        <execution>
                            <id>refresh</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>exec</goal>
                            </goals>
                            <configuration>
                                <executable>sh</executable>
                                <arguments>
                                    <argument>${basedir}/scripts/refresh.sh</argument>
                                </arguments>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                </plugins>
                </build>
            </profile>
        </profiles>
    
    </project>

    最后,执行:mvn package -DskipTests
    生成xhh-test-1.1.0-bin.tar.gz包

    展开全文
  • 生成docker镜像,并打包成tar部署

    千次阅读 2021-02-08 14:22:22
    redis.tar 有时候会导致none情况 docker save redis -o redis.tar 推荐 加载镜像 docker load -i name 启动镜像 注意 重复镜像,先停止容器->删除容器->删除镜像 或者也可以强制删除 命令后加一个 -f docker stop ...

    Docker使用

    • 此处使用docker-maven-plugin

    docker-maven-plugin示例

    <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>1.2.1</version>
                    <!--docker镜像相关的配置信息-->
                    <configuration>
                        <forceTags>true</forceTags> <!--覆盖相同标签镜像-->
                        <!--镜像名,这里用工程名-->
                        <imageName>
                            ${docker.repository}/${docker.registry.name}/${project.artifactId}:${project.version}
                        </imageName>
                        <!--                    TAG,这里用工程版本号-->
                        <imageTags>
                            <imageTag>${project.version}</imageTag>
                        </imageTags>
                        <!--镜像的FROM,使用java官方镜像-->
                        <baseImage>openjdk:11</baseImage>
                        <!--该镜像的容器启动后,直接运行spring boot工程-->
                        <entryPoint>
                            ["java","-jar","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+08","/${project.build.finalName}.jar"]
                        </entryPoint>
                        <runs>
                            <run>rm -f /etc/localtime</run>
                            <run>ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime</run>
                        </runs>
                        <dockerHost>http://192.168.0.117:2375</dockerHost> <!-- docker  -->
                        <registryUrl>${docker.repository}</registryUrl>
                        <serverId>docker-yq</serverId>
                        <pushImage>false</pushImage>   <!-- 推送到远程仓库  -->
    
                        <!--构建镜像的配置信息-->
                        <resources>
                            <resource>
                                <targetPath>/</targetPath>
                                <directory>${project.build.directory}</directory>
                                <include>${project.build.finalName}.jar</include>
                            </resource>
                        </resources>
                    </configuration>
                </plugin>
    
    • 注意dockerHost标签:此处采用Linux-docker,需要开启Linux上docker的远程连接

      • 首先找到docker的宿主主机文件:

        vi /lib/systemd/system/docker.service
        
      • 修改以ExecStart开头的行:

        ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
        
      • 然后重启服务:

        sudo systemctl daemon-reload
        sudo service docker restart
        
    • 镜像生成

      • 首先maven打jar包

      • 在pom文件同级下,控制台输入

        mvn clean package docker:build
        
      • 此时,在Linux下 输入

        docker images
        

        可以看到镜像已被导入到docker

      • docker run -d --net=host -v $PWD/log:/log --name cms --restart=always  镜像名 /bin/bash
        

        启动镜像

    拷出镜像

    • docker images
      

      查看镜像
      在这里插入图片描述

    • docker save 226c4c322bdb > redis.tar  有时候会导致none情况
      
      docker save redis -o redis.tar       推荐
      
    • 加载镜像

      docker load -i name
      
    • 启动镜像

    • 注意

      • 重复镜像,先停止容器->删除容器->删除镜像
      • 或者也可以强制删除 命令后加一个 -f
      docker stop CONTAINER ID
      docker rm CONTAINER ID
      docker rmi IMAGE ID
      
      • 如果遇到加载后的镜像RESPOSITORY TAG 都为none
        在这里插入图片描述

      重命名即可

      docker tag 1243bbe02067 name:version
      
    展开全文
  • 选择一个系统,在根目录下将已有系统打包成tar文件tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot . /proc、/sys、/run、/dev这几个目录都...

        选择一个系统,在根目录下将已有系统打包成tar文件:

    tar -cvpf /tmp/system.tar --directory=/ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot .

       /proc、/sys、/run、/dev这几个目录都是系统启动时自动生成的!依赖与系统内核!

     在进行tar打包时候,注意打包过程中的错误信息!如果有错误出现,要重新打包,不然在通过docker构建进行时,会给出找不到命令行或其他类型的错误!通过容器构建镜像的命令:

    cat system.tar | docker import - redhat:6.5

        通过执行命令:

    docker images
    docker run -it redhat:6.5 bash
    验证通过tar打包的镜像系统可用!

         

    展开全文
  • 新建的项目如何用idea打包成tar.gz

    千次阅读 2018-03-08 18:40:13
    1. assembly.xml配置文件和pom文件里的插件配置 首先pom文件里一定要先加上这个 maven-assembly-plugin 插件配置,另外注意:看自己的项目目录,是否可以通过 src/main/assembly/assembly.xml找到assembly.xml...

    这个问题困扰了我半天的时间,下面我就把心路历程和代码粘上来,跟大家一起分享

    关键的有两步:

    1. assembly.xml配置文件和pom文件里的插件配置

    首先pom文件里一定要先加上这个

    maven-assembly-plugin

    插件配置,另外注意:看自己的项目目录,是否可以通过 src/main/assembly/assembly.xml找到assembly.xml文件。还有这里尽量不要用<pluginManagement>,否则无法打包成功,我也不知为何。

     

     

    	
    <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptor>src/main/assembly/assembly.xml</descriptor> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

     

     
    2.第二步就是assembly.xml文件了
     
     
    <?xml version="1.0" encoding="UTF-8"?> <assembly> <id>bin</id> <formats> <format>tar.gz</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <outputDirectory>lib</outputDirectory> </dependencySet> </dependencySets> <fileSets> <!--打包后的conf配置文件应包含项目的哪些配置文件,这里有一个springboot的yml文件和dubbo配置文件  directory标签里的是项目里的文件,outputDirectory标签里的是打包后文件的包目录-->  <fileSet> <filtered>true</filtered> <directory>src/main/resources</directory> <outputDirectory>conf</outputDirectory> <includes> <include>application.yml</include> <include>dubbo-provider.xml</include> </includes> <fileMode>0644</fileMode> </fileSet> <!--打包后,将META-INF直接放在conf包下面-->  <fileSet> <directory>src/main/resources/META-INF</directory> <outputDirectory>conf/META-INF</outputDirectory> <includes> <include>*</include> </includes> <fileMode>0644</fileMode> </fileSet> <!--将项目里scripts包里的shell运行脚本文件,打包后放在bin目录下-->  <fileSet> <directory>src/main/scripts</directory> <outputDirectory>bin</outputDirectory> <includes> <include>run.sh</include> <include>start.sh</include> <include>stop.sh</include> </includes> <fileMode>0755</fileMode> <lineEnding>unix</lineEnding> </fileSet> </fileSets> </assembly>
     
    以上是我的总结,我把我理解的都注释了,希望对新手有所帮助!如有疑问,可留言。
     
     

     

    展开全文
  • 背景 常需要将本地工具上传集群,并在...1. 打包成tar文件打包路径,影响解压路径 1. tar -cf YOUFILE.tar bin/ ## 将bin文件夹打包进YOUFILE.tar文件夹 2. tar -rf YOUFILE.tar conf/ ## 将conf文件新增进YOU...
  • 在spring boot项目中使用maven profiles和maven assembly插件根据不同环境打包成tar.gz或者zip 将spring boot项目中的配置文件提取到外部config目录中 将spring boot项目中的启动jar包移动到boot目录中 将spring ...
  • 问题描述 平台:Win 10 64位 def tar_pak(out_filename, source_dir): if not os.path.exists(source_dir): sys.stdout.write("[tar.err] source dir is null!... with tarfile.open... tar.add(source_dir, o.
  • 一、首先安装...下载后,将下载的PyInstaller-3.5.tar.gz文件进行解压缩。从控制台中进入到解压的目录下 执行命令:python setup.py install 问题 安装成功后,使用打包命令打包不了。于是随便建立了一个p...
  • java将文件压缩成tar.gz

    千次阅读 2017-07-25 10:53:41
    public static File compressTarFile(List&lt;File&gt; list, String targzipFilePath, String targzipFileName){  byte[] buf = new byte[1024]; //设定读入缓冲区尺寸 ... //建立压缩文件...
  • Linux打包命令tar的解压路径问题

    千次阅读 2018-05-11 09:53:22
    Linux中常用的解压缩命令tar # 压缩和解压命令通常的使用方法是tar cvzf /home/user/somename.tar foldername # 将foldername文件夹下的内容都压缩到指定位置/home/user下,打包成名叫somename.tar的压缩文件解压...
  • 将某目录文件成tar

    千次阅读 2016-04-21 16:35:21
    要点: 1、char tarName[100] = {0};  sprintf(tarName , ...// 把某个路径(tarPath)做一个名为 data.tar 的归档包  //其中sprintf()的作用是将后面的路径做一个字符串 2、system(tarName);  
  • 近期需要将一些数据数据打成tar.gz包,放到ftp上供合作方拉取。在网上查了下Java打包文件的方式, 发现很多例子都是基于文件操作进行了。在实际业务中,并不需要将文件落盘,只需放到ftp即可。为了保证效率, 打包时...
  • tar -cvf script.tar script sz script.tar 文件夹先要打包,并且要指定...一般来说,linux服务器大多是通过ssh来进行远程的登陆和管理的,如何在命令方式下上传和下载文件到服务器和本地呢? 与ssh有关的两个命令...
  • 1 tar -czvf key.tar.gz key/*   2 sz key.tar.gz
  • linux tar 打包 解压包

    千次阅读 2013-06-19 08:41:22
    打包: 在linux上打包一个目录下的...eg:将当前目录下的root目录 打包成 root.tar tar cvf root.tar root 解包 1. 上传压缩包文件 root.tar 2. 执行解包 tar -xvf 包名 eg:加压缩当前目录下的 root.tar tar
  • 我用了两种方法来实现: 用到的重要linux命令有(cat、grep、tar、awk、ssh) 一、通过配置文件+shell脚本+expect脚本(shell脚本来获取配置文件信息然后将获得的参数传递给expect脚本) 废话不多说上代码: ...
  • 主要介绍了Python打包文件夹的方法,结合实例形式总结分析了Python打包成zip,tar,tar.gz等格式文件的操作技巧,需要的朋友可以参考下
  • tar打包时忽略文件的目录结构 不保存目录结构
  • 步骤 把文件夹打包tar -zcvf FileName.tar....用winrar 解压本地电脑的tar文件 tar 打包 .tar 解包:tar xvf FileName.tar 打包tar cvf FileName.tar DirName (注:tar打包,不是压缩!) rz,sz 发...
  • Linux 命令————打包解压之tar

    万次阅读 多人点赞 2016-06-17 08:27:46
    (1)文件打包 $tar-cvf *.tar filename -c –create 指导tar创建归档文件。 -v–verbose(adj,冗长的,啰嗦的)用于列出命令的执行过程,如果嫌麻烦,大可省略。 -f –file用于指定归档文件的文件名...
  • rpm本地打包之spec文件(linux)

    千次阅读 2018-08-20 11:28:44
    rpm本地打包之spec文件(linux) rpm本地打包的回顾 在Linux之rpm本地打包中分析了rpm的常用指令、rpmbuild的常用指令以及参数的配置说明,详细情况请进入链接详细查看。接下来重点是分析spec文件。 spec文件.....
  • shell脚本_tar自动打包

    千次阅读 2019-05-16 17:58:51
    一个简单的shell自动打包脚本: 1、筛选出我们要打包文件,例如: find . -maxdepth 1 -name "*.sh";...tar -cxvf tar.sh.tar.gz /root/tar.sh //将/root/tar.sh使用gzip进行压缩,并命名为atr.sh.tar.gz 将...
  • linux centos 解压tar.gz压缩包的时候报错:gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now
  • o face_v1.tar face:v1 参数说明: save 保存到当前路径 -o 打包后的tart包名称 对应打包的image 名字:TAG 备注:建议打包成tar后再次使用压缩工具打包成 /.tar.gz/zip/rar 包,可以压缩较大程度上减少文件大小 六、...
  • 首先应该明确:*nix系统中,使用tar文件打包时,一般不建议使用绝对路径,否则解压会覆盖原有文件,建议将打包文件下载到本地电脑解压后再根据需要修改上传覆盖文件。 通常是在两台环境相似的机器上进行同步复制...
  • maven打包为zip,tar.gz

    2018-07-24 11:38:01
    非常实用的工具,将maven类java工程打包为zip格式、tar.gz格式,并且实现jar包 配置文件分离,方便部署。
  • Linux tar打包命令

    2013-10-30 18:11:01
    将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar [root@linux ~]# tar -cvf /tmp/etc.tar /etc [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc
  • 很多时候我们都是以源代码发布的形式发布Python项目,但有时间为了达到保护代码,我们需要通过Cython把python的文件编译转换二进制文件。同时 也能一定程度上提高Python模块的加载 1、安装Cython 笔者由于电脑...
  • 近期因为工作需求,开始接触发布项目到服务器,下面简单记录发布项目需要的流程1,拉去线上代码,使本地代码为最新版,我使用的命令: git pull2,使用maven命令打包本地项目 ,命令: maven clean package -Pwar -U3...
  • 假设要被压缩的文件夹images在/Users/name/下,我现在希望把它打包到/Users/name/Desktop/docker下。发现不同的tar,在创建镜像的时候竟然会有不一样的结果。 cd docker 如果我打开terminal一直cd到docker里,然后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,048
精华内容 14,819
关键字:

本地文件打包成tar