Ⅰ maven pom 怎麼從jar包裡面排除一個類 exclude 某個類
沒法通過pem文件配置移除某個特定的類,可以移除整個jar包和移除該jar包的依賴jar包
Ⅱ 用maven打包war時,怎麼才能不要lib下面的jar
可以在每個dependency上面加<optional>true</optional>。
但是如果你打的war包裡面沒有lib,那你的應用伺服器怎麼運行呢,放在tomcat/lib 下可不是個好方法
Ⅲ maven打包的時候會忽略掉空文件夾,怎樣配置讓它不忽略
我先上代碼,主要 是 maven-war-plugin 有個includeEmptyDirectories參數 ,
注意:這個參內數maven-war-plugin 2.4 的版本才支持容
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<includeEmptyDirectories>true</includeEmptyDirectories>
</configuration>
</plugin>
</plugins>
</build>
Ⅳ maven-spring-boot 打可執行jar時,怎麼排除provided的jar
spring-boot默認提供內嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以啟動。但是,有時候我們更希望一個tomcat來管理多個項目,這種情況下就需要項目是war格式的包而不是jar格式的包。spring-boot同樣提供了解決方案,只需要簡單的幾步更改就可以了,這里提供maven項目的解決方法:
1.將項目的啟動類Application.java繼承SpringBootServletInitializer並重寫configure方法
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}12345678910111213
2.在pom.xml文件中,project下面增加package標簽
<packaging>war</packaging>1
3.還是在pom.xml文件中,dependencies下面添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>12345
這樣,只需要以上3步就可以打包成war包,並且部署到tomcat中了。需要注意的是這樣部署的request url需要在埠後加上項目的名字才能正常訪問。spring-boot更加強大的一點就是:即便項目是以上配置,依然可以用內嵌的tomcat來調試,啟動命令和以前沒變,還是:mvn spring-boot:run。
如果需要在springboot中加上request前綴,需要在application.properties中添加server.contextPath=/prefix/即可。其中prefix為前綴名。這個前綴會在war包中失效,取而代之的是war包名稱,如果war包名稱和prefix相同的話,那麼調試環境和正式部署環境就是一個request地址了。
Ⅳ java jar怎麼把指定目錄排除掉再進行打包
在項目的pom.xml文件裡面添加如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warName>loginweb</warName>
<outputDirectory>target</outputDirectory>
<!-- 排除 -->
<packagingExcludes>
WEB-INF/classes/*jdbc.properties,
WEB-INF/classes/*config.properties,regex[WEB-INF/lib/(?!log4j-1|common-1).*.*.jar]
</packagingExcludes>
</configuration>
</plugin>
配置說明:
1. WEB-INF/classes/*_jdbc.properties: 過濾 任何前綴的 _jdbc.properties 配置文件(如:我上篇博客自動打不同環境的包中提到的添加的不同環境的jdbc配置文件,那麼在打包時候,排除自己添加的這個配置文件)
2. %regex[WEB-INF/lib/(?!log4j-1|common-1)...jar] 通過正在表達式配置打包時,排除除了log4j-1和common-1 的 1.任何版本的jar包。即打包時只添加這兩個jar包到war包裡面,其他的任何jar都排除不打包進去
(PS:為了tomcat 共享jar包,所以項目中不打jar,當然除了自己項目間相互依賴的jar,比如這個jar會經常自己修改,那麼經常修改的,就不排除,打包時候把他們也打進去。對於tomcat如何共享jar包,後續再詳細描述)
3. 如果有多個條件,用逗號隔開。對於packagingExcludes 的詳細使用,請查看官網:
http://maven.apache.org/plugins/maven-war-plugin/examples/including-excluding-files-from-war.html