利用maven的多个插件完成自动打包关系,想要什么就指定什么,一切依赖类路径classpath,配置文件内外分profile分别指定

8 篇文章 0 订阅
4 篇文章 0 订阅

项目通过idea工具进行,执行方式有很多:

   1   直接通过idea运行main方法,

   2   mvn命名打jar包直接运行jar,  在生成jar的target目录下  java -jar xxx.jar -Dlogpath=D://logs  --server.port=8083

   3   springboot也有提供启动命令  spring-boot:run

1如果想要分profile,在stg环境时,不使用项目内部的资源文件:

再各自的profile里分别指定resource的内容

<profiles>
        <profile>
            <id>stg</id>
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <excludes>
                            <exclude>wmconf/xx1.properties</exclude>
                            <exclude>wmconf/xx2.properties</exclude>                     
                        </excludes>
                    </resource>

                    <resource>
                        <directory>src/main/java</directory>
                        <includes>
                            <include>**/*.xml</include>
                        </includes>
                    </resource>
                </resources>
            </build>
        </profile>
    </profiles>

springboot打包时,如何不将jar依赖也打进去?

   <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>    <!-- hot deploy  -->
                    <includes>   <!-- exclude third part jar files -->
                        <include>
                            <groupId>nothing</groupId>
                            <artifactId>nothing</artifactId>
                        </include>
                    </includes>
                </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>
                            <type>jar</type>
                            <includeTypes>jar</includeTypes>
                            <outputDirectory>
                                ${project.build.directory}/lib
                            </outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

将资源文件放到config目录下,只有第一次时才指定下面的resource,之后就不能再指定了,否则就覆盖了,获取从一开始,就自己创建config目录:

 <resource>
             
                <directory>src/main/resources</directory>
                <targetPath>${project.build.directory}/config</targetPath>

                <filtering>true</filtering>
                <includes>
                    <include>**.xml</include>
                    <include>**.properties</include>
                </includes>
            </resource>

如果mybatis的资源文件是放在src/main/java下时,需要指定:

<resource>
                <directory>src/main/java</directory>
                <includes>
                 
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>-

将resources下的xml放在classes目录里,不过我觉的这步多余了,我的mapper在resouces下,没有指定这个也可以运行

<resource>
               <directory>src/main/resources</directory>
               <targetPath>${project.build.directory}\classes</targetPath>
              <filtering>true</filtering>
               <includes>
                   <include>mapping/*.xml</include>
               </includes>
           </resource>

真正打jar包时,指定classpath, 包含lib ,和config

  <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <classesDirectory>target/classes/</classesDirectory>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib</classpathPrefix>
                            <!-- 程序启动入口 -->
                            <mainClass>com.example.demo.DemoApplication</mainClass>
                        </manifest>
                        <manifestEntries>
                            <!--读取外部配置文件,放到classpath里-->
                            <Class-Path>config/ .</Class-Path>
                        </manifestEntries>
                    </archive>
                    <!--没有在这里排除的话,会被打到classes里-->
                   <excludes>
                        <exclude>*.xml</exclude>
                        <exclude>*.properties</exclude>
                    </excludes>
                </configuration>
            </plugin>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值