Java 如何使用maven从spring启动应用程序中删除所有JAR
我需要从使用spring boot构建的war中删除所有JAR(整个库和库提供的文件夹),因为web应用程序将使用commons共享库部署在Websphere上 有没有办法做到这一点,因为war插件中的排除项不能使用,而boot maven插件中的排除项是为了准时使用 编辑: 我目前的POM:Java 如何使用maven从spring启动应用程序中删除所有JAR,java,maven,spring-boot,build,war,Java,Maven,Spring Boot,Build,War,我需要从使用spring boot构建的war中删除所有JAR(整个库和库提供的文件夹),因为web应用程序将使用commons共享库部署在Websphere上 有没有办法做到这一点,因为war插件中的排除项不能使用,而boot maven插件中的排除项是为了准时使用 编辑: 我目前的POM: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" 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>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Application Name</name>
<description>Application Description</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.7</java.version>
<powermock.version>1.6.5</powermock.version>
<snippetsDirectory>${project.build.directory}/generated-snippets</snippetsDirectory>
<hibernate.version>4.2.15.Final</hibernate.version>
</properties>
<dependencies>
<!-- SPRING DEPENDENCIES -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<groupId>org.hibernate.javax.persistence</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
<exclusion>
<artifactId>hibernate-validator</artifactId>
<groupId>org.hibernate</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-legacy</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>
<!-- DATABASE RELATED DEPENDENCIES -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
<scope>provided</scope>
</dependency>
<!-- TEST & DEVELOPEMENT DEPENDENCIES -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Documentation.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.2</version>
<executions>
<execution>
<id>generate-docs</id>
<phase>prepare-package</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>html</backend>
<doctype>book</doctype>
<attributes>
<snippets>${snippetsDirectory}</snippets>
</attributes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version><!--$NO-MVN-MAN-VER$ -->
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.outputDirectory}/static/docs
</outputDirectory>
<resources>
<resource>
<directory>
${project.build.directory}/generated-docs
</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.0.0
groupId
人工的
1.0.0-SNAPSHOT
战争
应用程序名称
应用说明
org.springframework.boot
spring启动程序父级
1.4.1.1发布
UTF-8
UTF-8
1.7
1.6.5
${project.build.directory}/生成的代码段
4.2.15.最终版本
org.springframework.boot
spring引导启动器数据jpa
hibernate-jpa-2.0-api
org.hibernate.javax.persistence
org.springframework.boot
SpringBootStarterWeb
弹簧启动机tomcat
org.springframework.boot
休眠验证器
org.hibernate
org.springframework.boot
弹簧启动机tomcat
假如
org.springframework.boot
弹簧靴遗产
1.0.2.1发布
com.h2数据库
氢
org.hibernate.javax.persistence
hibernate-jpa-2.0-api
1.0.1.最终版本
假如
org.springframework.boot
弹簧靴开发工具
真的
org.springframework.boot
弹簧起动试验
测试
org.powermock
powermock api mockito
${powermock.version}
测试
org.powermock
powermock-module-junit4
${powermock.version}
测试
org.springframework.restdocs
SpringRestMVC
测试
src/main/resources
真的
org.springframework.boot
springbootmaven插件
org.apache.maven.plugins
maven surefire插件
**/*Documentation.java
org.ascidoctor
AscidActor maven插件
1.5.2
生成文档
准备包装
过程ascidoc
html
书
${snippetsDirectory}
maven资源插件
2.7
复制资源
准备包装
复制资源
${project.build.outputDirectory}/static/docs
${project.build.directory}/生成的文档
如果您想排除项目.war/WEB-INF/lib中的JAR,那么您可以尝试使用提供的
范例
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
<scope>provided</scope>
</dependency>
这样,我就看不到lib提供的目录了
HTH.如果您想排除项目.war/WEB-INF/lib中的JAR,那么您可以尝试使用提供的
范例
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
<scope>provided</scope>
</dependency>
这样,我就看不到lib提供的目录了
HTH.这是我问题的部分解决方案,因为一切都在lib中提供。。。我需要一个更轻的war文件…什么是提供的lib
文件夹?它在应用程序中的位置是什么?当我在WEB-INF中构建应用程序时,我同时提供了lib和lib。提供的lib包含标记为my pom中提供的所有JAR。此lib-provided
实际存在于您的项目目录中吗?因为AFAIK,标准maven项目结构没有提供任何名为lib的目录。或者,如果您不介意的话,将pom.xml和任何相关的maven文件放入您的问题中。删除任何密码或任何敏感数据(如果存在)。这是我问题的部分解决方案,因为所有内容都在提供的库中。。。我需要一个更轻的war文件…什么是提供的lib
文件夹?它在应用程序中的位置是什么?当我在WEB-INF中构建应用程序时,我同时提供了lib和lib。提供的lib包含标记为my pom中提供的所有JAR。此lib-provided
实际存在于您的项目目录中吗?因为AFAIK,标准maven项目结构不会