java - 根据项目版本使用发布或快照存储库进行手动部署

标签 java maven maven-deploy-plugin build-helper-maven-plugin

我想使用快照存储库(使用配置的属性project.distributionManagement.snapshotRepository.url)将手动文件部署到远程存储库(如果项目的当前版本是快照版本)或发布存储库(使用否则配置属性project.distributionManagement.repository.url)。

我想将 swagger json 架构部署到存储库,但除了手动部署之外,我没有找到任何方法。

最佳答案

有一个解决方案,可以使用构建器帮助程序 bsh 来使用分发管理配置中的正确存储库。它设置一个具有正确值的属性。然后使用目标部署文件和此 URL 调用 Maven 部署插件。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.12</version>
    <executions>
        <execution>
            <goals>
                <goal>bsh-property</goal>
            </goals>
            <configuration>
                <properties>
                    <property>deploy.url</property>
                </properties>
                <source>deploy.url = project.getVersion().endsWith("-SNAPSHOT") ? project.getDistributionManagement().getSnapshotRepository().getUrl() : project.getDistributionManagement().getRepository().getUrl() ;</source>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.8.2</version>
    <executions>
        <execution>
            <phase>deploy</phase>
            <goals>
                <goal>deploy-file</goal>
            </goals>
            <configuration>
                <url>${deploy.url}</url>
                <repositoryId>releases</repositoryId>
                <file>${swagger.directory}/swagger.json</file>
                <groupId>${project.groupId}</groupId>
                <artifactId>${project.artifactId}</artifactId>
                <version>${project.version}</version>
                <packaging>json</packaging>
                <classifier>swagger</classifier>
            </configuration>
        </execution>
    </executions>
</plugin>

关于java - 根据项目版本使用发布或快照存储库进行手动部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181118/

相关文章:

java - Maven 部署 -x 给出 Failed to deploy artifacts ....Access returned to : http://

maven - 如何使用 Maven 修改 POM 文件的设置以支持 Artifactory 上的访问 token

java - 如何保护 Java 类文件中的逻辑?

java - Android中WebView加载URL时如何显示进度条?

java.lang.UnsupportedClassVersionError : com/dicoding/javafundamental/basic/Main has been compiled by a more recent version of the Java Runtime

android - 无法在代码中导入gradle库,尽管它出现在我的外部库列表中

java - 将base64中的图像从rest服务返回到img src标签

maven - 如何调试Maven插件?

java - GWT WebApp 寻找入口点

svn - 无法 mvn 发布 :prepare, 服务器证书验证失败