java - 定制的maven可部署(删除了一些依赖项的war)

标签 java maven deployment maven-2

我有一个使用 Maven 构建的多模块 Web 应用程序。我们按照正常方式构建 war ,并使用 tomcat 在开发人员计算机和本地测试服务器上部署和运行。

然后我们要将应用程序部署到云端。为此,我们创建了一个特殊版本的 tomcat,其中预加载了所有库,以及一个特殊版本的 war,其中仅包含我们的代码。这里要点是tomcat是预装在云服务器上的,每次改的时候都会上传war。目前我们必须手动从构建的 war 中删除依赖项。

maven 执行此操作的最佳方法是什么?我应该构建自定义打包类型还是运行一些构建后插件来消除这些 war ?或者是其他东西?我认为激活此自定义构建的最佳方法是通过配置文件。我确实尝试通过在新配置文件中将它们设置为 scope =provided 来删除这些依赖项,但传递依赖项仍然进入了 war 。

最佳答案

如果您想排除所有依赖项,您可以使用war插件的packagingExcludes来执行此操作:

    <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
            ...
        </configuration>
    </plugin>

在配置文件中指定此插件仅在生产中执行。

关于java - 定制的maven可部署(删除了一些依赖项的war),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828885/

相关文章:

eclipse - Maven 为 Eclipse 中嵌入的 Tomcat 过滤 web.xml

sql - 通过 MSFT 的数据库发布向导发布后数据库出现问题

deployment - 自动化 go 应用程序部署

java - 运行standalone.bat时,wildfly在设置java属性时停止

java - JPA 不按 LocalDate 和 LocalTime 对记录进行排序

java - 如何删除 jtextfield 创建的附加行

maven - 如何在 eclipse 中使用已安装的 Maven 版本

当我尝试关闭 ElasticSearch 客户端时出现 java.lang.NoSuchMethodError 异常

java - 进行 DOM 节点到字符串的转换,但存在命名空间问题

java - 使用 SmartyStreets 但没有任何效果