gradle的maven plugin使用

时间:2022-03-09 12:52:26

在分布式系统开发中,基于gradle的项目,要共享jar一般是借助maven私服。那么gradle的maven插件如何做到上传binary jar,source jar, javadoc jar到私服呢?
选择http方式发布jar,则配置如下:
allprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'maven'
 
    idea {
        module {
            downloadSources=true
            downloadJavadoc=true
        }
    }
 
    configurations {
        provided
        compile.extendsFrom provided
        deployerJars
    }
 
    uploadArchives {
        repositories {
            mavenDeployer {
                configuration = configurations.deployerJars
                snapshotRepository(url: “xxx repository snapshots") {
                    authentication(userName: “username", password: “password")
                }
            }
        }
    }
 
    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }
 
    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }
 
    artifacts {
        archives sourcesJar
        archives javadocJar
    }
 
    repositories {
        maven {
            name ‘xxx-repository'
            url ‘maven nexus repository'
        }
        mavenLocal()
    }
 
    group 'com.xxx'
    version '0.1.0-SNAPSHOT'
 
    sourceCompatibility = 1.7
}
 
subprojects {
    dependencies {
        deployerJars "org.apache.maven.wagon:wagon-http:2.2"
    }
}
 
在做到上传之后,在下载的时候也需要能够自动关联到source jar,javadoc jar。
下载关联代码如下:
选择idea插件,则配置如下:
    idea {
        module {
            downloadSources=true
            downloadJavadoc=true
        }
    }
选择eclipse,则配置如下:
eclipse {
     classpath {          
            downloadSources=true
            downloadJavadoc=true
     }
 } 
 
关于SNAPSHOT:
一般开发过程中,版本都是SNAPSHOT版本的。在跨工程引用的时候,有2种办法控制获取最新版本的jar。第一种就是不断的更新版本,通过版本变更来获取最新版本的jar。另外一种就是声明变化版本,让gradle每次编译都去获取最新时间戳版本的jar。
声明配置如下:
configurations.all { // check for updates every build resolutionStrategy.cacheChangingModulesFor 0, 'seconds'} dependencies { compile group: "group", name: "projectA", version: "1.1-SNAPSHOT", changing: true}

gradle的maven plugin使用的更多相关文章

  1. 挑战常规--搭建gradle、maven私人仓库很简单

    常规 百度搜索“搭建maven私有仓库”,搜索到的结果几乎都是使用nexus 不一样的简单 如果了解maven上传原理,完全没必要搞得那么复杂庞大,区区不足百行代码就可以实现一个私有仓库. maven ...

  2. 【全文转载】Gradle、Maven项目相互转换

    Doublemine 首页 标签 归档 关于 搜索   Gradle.Maven项目相互转换  发表于 2017-08-21 |  更新于: 2018-03-18 |  阅读次数: 920  字数统计 ...

  3. Gradle build.gradle to Maven pom.xml ,终于找到你了。

    尊重原创:https://blog.csdn.net/kevin_luan/article/details/50996109 根据build.gradle 生成maven pox.xml 1.将以下配 ...

  4. 深入了解gradle和maven的区别

    目录 简介 gradle和maven的比较 可扩展性 性能比较 依赖的区别 从maven迁移到gradle 自动转换 转换依赖 转换repositories仓库 控制依赖的版本 多模块项目 profi ...

  5. 学习Maven之Cobertura Maven Plugin

    cobertura-maven-plugin是个什么鬼? cobertura-maven-plugin是一个校验单元测试用例覆盖率的工具,可以生成一个测试覆盖率报告,可以给单元测试用例编写提供参考. ...

  6. gradle和maven有什么用?分别有什么区别?

    作者:EZLippi链接:http://www.zhihu.com/question/29338218/answer/51293828来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  7. Gradle 修改 Maven 仓库地址

    gradle install--- http://www.itnose.net/detail/6500082.html http://*.com/questions/51025 ...

  8. Maven实现Web应用集成測试自己主动化 -- 部署自己主动化(WebTest Maven Plugin)

    上篇:Maven实现Web应用集成測试自己主动化 -- 測试自己主动化(WebTest Maven Plugin) 之前介绍了怎样在maven中使用webtest插件实现web的集成測试,这里有个遗留 ...

  9. 解决Jetty Maven Plugin:Please initialize the log4j system properly(转)

    解决Jetty Maven Plugin:Please initialize the log4j system properly.Jetty Maven Plugin环境: <plugin&gt ...

随机推荐

  1. entity-model-first

  2. mysql技巧之select count的比较

        在工作过程中,时不时会有开发咨询几种select count()的区别,我总会告诉他们使用select count(*) 就好.下文我会展示几种sql的执行计划来说明为啥是这样.   1.测试 ...

  3. android RelativeLayout 动态设置高度

    定义: private RelativeLayout mrlay; 调高度: mrlay = (RelativeLayout) findViewById(R.id.rlay_1); android.v ...

  4. polymorphic-associations 多态关联实例 ruby on rails

    这次做新项目的时候,把图片都放在了一个表里,其他表中不再存图片信息,通过多态关联建立表之间的关系. (1)新建picture表, component表不需要处理 class CreatePicture ...

  5. Hibernate各种主键生成器策略与配置详解(转载)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  6. Linux信号列表

    我们运行如下命令,可看到Linux支持的信号列表: ~$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL5) SIGTRAP 6) SIGABRT 7) ...

  7. Ext JS学习第十天 Ext基础之动态加载JS文件(补充)

    此文用来记录学习笔记: •Ext4.x版本提供的一大亮点就是Ext.Loader这个类的动态加载机制!只要遵循路径规范,即可动态加载js文件,方便把自己扩展组件动态加载进来,并且减轻浏览器的压力. • ...

  8. easyui datagrid 前台分页

    核心方法 //分页data function pagerFilter(data, pagegrid) { if (typeof data.length == 'number' && t ...

  9. 写给Android App开发人员看的Android底层知识(3)

    (七)App启动流程第2篇 书接上文,App启动一共有七个阶段,上篇文章篇幅所限,我们只看了第一阶段,接下来讲剩余的六个阶段,仍然是拿斗鱼App举例子. 简单回顾一下第一阶段的流程,就是Launche ...

  10. FastDFS 分布式文件系统的安装与使用

    跟踪服务器:192.168.152.129 (centos1) 存储服务器:192.168.152.130 (centos2) 环境:CentOS 6.6 用户:root 数据目录:/fastdfs ...