• maven 打包jar && lib


     

    一.springboot 打包成jar

    1.pom.xml

    <build>
                <!-- jar的名称-->
         <finalName>shiro</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
     
     
                <!-- 1、设置jar的入口类 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <addClasspath>true</addClasspath>
                                <classpathPrefix>lib/</classpathPrefix>
                                <mainClass>com.cd.shiro.Application</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                </plugin>
     
     
                <!--2、把附属的jar打到jar内部的lib目录中 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
     
                <!-- 3、打包过程忽略Junit测试 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <skip>true</skip>
                    </configuration>
                </plugin>
     
            </plugins>
           <!-- 过滤resources 下的html-->
            <resources>
                <resource>
                    <filtering>true</filtering>
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>html/**</exclude>
                    </excludes>
                </resource>
            </resources>
        </build>   

    2、maven打包:mvn clean package

    生成的jar包会在项目的target目录下

    3、运行jar包,命令行下:

          java -jar xxxx.jar

    4、父子工程项目,可在父工程pom.xml中指定打包到统一目录中,上面步骤二将附属jar打包到lib  ${project.build.directory} 就是路径

         注意:如果此方式出现打包后的数据混乱请使用方法5.

        <build>
            <!--项目打包路径 比如源代码在 f:/project  会打包生成在f:/target下面.
                如何部署?
                两种方式:
                一:只上传合并后的jar
                    1.将f:/target下面的 *.jar(M为单位) 上传到服务器 执行 java -jar *.jar执行
                二:源代码和maven引入的包分离
                    1.第一次部署需要把lib整个文件夹,和*.original上传,去掉original后缀 rename .original '' * 执行java -jar *.jar
                    2.后面每次修改了那个源代码就只替换就行,新增了引入的jar也只需要上传新增的jar到lib目录中。
            -->
            <directory>/target</directory> <!--此处有坑-->
        </build>

    5、父子工程项目打包,父工程指定到统一目录中。

        <!-- 将子项目打包的copy到指定目录-->
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                    <executions>
                        <execution>
                            <id>copy</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy</goal>
                            </goals>
                            <configuration>
                                <artifactItems>
                                    <!--把子项目target目录下的jar拷贝到/target下-->
                                    <artifactItem>
                                        <groupId>${project.groupId}</groupId>
                                        <artifactId>${project.artifactId}</artifactId>
                                        <version>${project.version}</version>
                                        <type>${project.packaging}</type>
                                        <overWrite>true</overWrite>
                                        <!--copyTo的目录-->
                                        <outputDirectory>/target</outputDirectory>
                                    </artifactItem>
                                </artifactItems>
                            </configuration>
                        </execution>
                        <!-- copy lib copy-dependencies copy依赖包-->
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>/target/lib</outputDirectory>
                            </configuration>
                        </execution>
    
                    </executions>
    
    
                </plugin>
            </plugins>
    
        </build>
  • 相关阅读:
    python基础学习1-函数相关
    python基础学习1-SET 集合
    Linux命令学习笔记1
    python基础学习1-字典的使用
    python基础学习1-列表使用
    Jzoj4743 积木
    Jzoj4786 小a的强迫症
    Jzoj4746 树塔狂想曲
    Jzoj5246 Trip
    Jzoj5245 Competing Souls
  • 原文地址:https://www.cnblogs.com/iathanasy/p/9330885.html
Copyright © 2020-2023  润新知