maven打两个jar包并且分别使用不同的logback.xml配置文件

情景

一个工程中(或者一个模块【module】)中有两个Main类,希望分别打成jar包。

实现

项目结构

main

    java.com.jfqqq

        APP1.java

        APP2.java

resources

    logback-1.xml

    logback-2.xml

打成两个包

修改pom.xml,使用maven-jar-plugin插件; 分别在 plugin->executions->execution->configuration->excludes中排除不需要的logback文件:

	<build>
		<finalName>app</finalName><!--这个是本模块自己的目标名称-->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<id>jfqqq-jar1</id><!--这个是唯一标识ID,不写的话会用默认值,但是这里必须写,因为下方的jar也不写的话就两个相同的默认值冲突了-->
						<goals>
							<goal>jar</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<excludes>
								<exclude>/logback-2.xml</exclude><!-可以排除的文件,“/
在这里等于代表classpath,也就是项目的resources目录,这里把类2的logback排除,就只剩下logback-1.xml会打包进去了-->
							</excludes>
							<archive>
								<manifest>
									<addClasspath>true</addClasspath>
									<classpathPrefix>lib/</classpathPrefix>
									<mainClass>com.jfqqq.APP1</mainClass><!-第一个MAIN class-->
								</manifest>
							</archive>
							<classifier>jfqqq-jar1-qwe</classifier><!-必填,追加在jar包后面形成jar的文件名-->
					</configuration>
					</execution>
					<execution>
						<id>jfqqq-jar2</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<phase>package</phase>
						<configuration>
							<excludes>
								<exclude>/logback-1.xml</exclude>
							</excludes>
							<classifier>jfqqq-jar2-qwe</classifier>
							<archive>
								<manifest>
									<addClasspath>true</addClasspath>
									<classpathPrefix>lib/</classpathPrefix>
									<mainClass>com.jfqqq.APP2</mainClass><!-第二个MAIN class-->
								</manifest>
							</archive>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

打包结果:

 2. 各自使用各自的logback.xml

logback默认找的文件名时是logback,而jar包中只有logback-1或logback-2,所以在启动时指定logback.xml就行:

java -jar -Dlogback.configurationFile=logback-1.xml app-jfqqq=jar1-qwe.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值