我有一个 Maven 项目,它创建一个 WAR 文件和一个 JAR 文件(使用 -classes
分类器,在 <attachClasses>true</attachClasses>
配置中使用 maven-war-plugin
)。当我运行mvn deploy
时,这两个 Artifact 都部署到 Maven Central(通过 Sonatype Nexus)。
这一切都很好,但实际上没有必要将 WAR 部署到 Maven Central - 只需部署 -classes
JAR 就足够了,因为 WAR 总是上传到我们的 github 站点以供下载,并且只有 JAR 才会用作另一个项目的依赖项。
有没有办法在 Maven 中配置它?我以为<primaryArtifact>false</primaryArtifact>
在 maven-war-plugin
配置可能会修复它,但它没有。
最佳答案
根据Maven WAR Plugin FAQs ,这个问题需要一些重构才能解决。您必须将项目拆分为一个仅生成类 JAR 的“类”模块,以及将整个 Web 应用程序构建为 WAR 文件的第二个模块。然后,WAR 模块可以包含 JAR 模块作为依赖项。
不同的 Maven 配置文件(一个用于构建和部署 JAR,另一个用于构建 WAR 并跳过部署)也可能是一种解决方案。但说实话,这看起来相当老套,也更难维护。我不确定从长远来看这会让您的生活更轻松。
关于java - 仅从 Maven WAR 项目部署类 JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954509/