212 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			212 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
// 本机和 WinBoLL Maven 仓库传输配置。
 | 
						||
//
 | 
						||
 | 
						||
def getDefaultVersion(){
 | 
						||
    // 检查编译标志位配置
 | 
						||
    assert (winbollBuildProps['publishVersion'] != null)
 | 
						||
    // 返回编译版本号
 | 
						||
    return winbollBuildProps['publishVersion']
 | 
						||
}
 | 
						||
 | 
						||
def siteUrl = 'https://winboll.cc/?page=studio/details.php&app=${rootProject.name}' // 项目主页
 | 
						||
def gitUrl = 'https://gitea.winboll.cc/WinBoLL/${rootProject.name}' // 项目的git地址
 | 
						||
def DefaultGroupId = 'cc.winboll.studio' // 类库所有者groupId
 | 
						||
def DefaultVersion = getDefaultVersion() // 版本号
 | 
						||
def DeveloperId='zhangsken' // 开发者账号
 | 
						||
def DeveloperName='ZhanGSKen' // 开发者名称
 | 
						||
def DeveloperEMail='zhangsken@188.com' // 开发者邮箱地址
 | 
						||
def LicenseName='The Apache Software License, Version 2.0'
 | 
						||
def LicenseUrl='http://www.apache.org/licenses/LICENSE-2.0.txt'
 | 
						||
 | 
						||
Properties properties = new Properties()
 | 
						||
 | 
						||
afterEvaluate {
 | 
						||
    publishing {
 | 
						||
        repositories {
 | 
						||
            if(file("${RootProjectDir}/${winbollFilePath}").exists()) {
 | 
						||
                properties.load(file("${RootProjectDir}/${winbollFilePath}").newDataInputStream())
 | 
						||
                def NexusUserName = properties.getProperty("Nexus.name")
 | 
						||
                def NexusPassword = properties.getProperty("Nexus.password")
 | 
						||
                // WinBoLL Release 仓库
 | 
						||
                maven{
 | 
						||
                    //仓库的名字和地址
 | 
						||
                    name = "WinBoLLRelease"
 | 
						||
                    url="https://nexus.winboll.cc/repository/maven-releases/"
 | 
						||
                    // 仓库用户名密码
 | 
						||
                    credentials {
 | 
						||
                        username = NexusUserName
 | 
						||
                        password = NexusPassword
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                // WinBoLL Snapshot 仓库
 | 
						||
                maven{
 | 
						||
                    //仓库的名字和地址
 | 
						||
                    name = "WinBoLLSnapshot"
 | 
						||
                    url="https://nexus.winboll.cc/repository/maven-snapshots/"
 | 
						||
                    // 仓库用户名密码
 | 
						||
                    credentials {
 | 
						||
                        username = NexusUserName
 | 
						||
                        password = NexusPassword
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        publications {
 | 
						||
            // Local Maven 仓库传输任务
 | 
						||
            //
 | 
						||
            release(MavenPublication) {
 | 
						||
                groupId = DefaultGroupId
 | 
						||
                artifactId = project.name
 | 
						||
                version = DefaultVersion
 | 
						||
    
 | 
						||
                //from components.java
 | 
						||
                // 必须有这个 否则不会上传AAR包
 | 
						||
                afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
 | 
						||
                // 上传source,这样使用方可以看到方法注释
 | 
						||
                //artifact generateSourcesJar
 | 
						||
                //要上传的aar路径
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-release.aar"
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-debug.aar"
 | 
						||
                
 | 
						||
                //对pom进行的操作
 | 
						||
                pom.withXml{
 | 
						||
                    Node pomNode = asNode()
 | 
						||
                    pomNode.dependencies.'*'.findAll() {
 | 
						||
                        //将所有的默认依赖移除
 | 
						||
                        //it.parent().remove(it)
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                pom {
 | 
						||
                    name = artifactId
 | 
						||
                    url = siteUrl
 | 
						||
                    licenses {
 | 
						||
                        license { //证书说明
 | 
						||
                           name=LicenseName // 开源协议名称
 | 
						||
                           url=LicenseUrl // 协议地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    developers {
 | 
						||
                        developer {
 | 
						||
                            id=DeveloperId // 开发者账号
 | 
						||
                            name=DeveloperName // 开发者名称
 | 
						||
                            email=DeveloperEMail // 开发者邮箱地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    //软件配置管理
 | 
						||
                    scm {
 | 
						||
                        connection=gitUrl
 | 
						||
                        developerConnection=gitUrl
 | 
						||
                        url=siteUrl
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            
 | 
						||
            // WinBoLL Maven Release 仓库传输任务
 | 
						||
            //
 | 
						||
            releaseWinBoLL(MavenPublication) {
 | 
						||
                // 需要使用的变体,假设有free和pay两个变体,可以选择一个
 | 
						||
                //from components.free
 | 
						||
                
 | 
						||
                groupId = DefaultGroupId // 文件的groupId
 | 
						||
                artifactId = project.name //文件的名字
 | 
						||
                version = DefaultVersion //版本号
 | 
						||
    
 | 
						||
                //from components.java
 | 
						||
                // 必须有这个 否则不会上传AAR包
 | 
						||
                afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
 | 
						||
                // 上传source,这样使用方可以看到方法注释
 | 
						||
                //artifact generateSourcesJar
 | 
						||
                //要上传的aar路径
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-release.aar"
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-debug.aar"
 | 
						||
                
 | 
						||
                //对pom进行的操作
 | 
						||
                pom.withXml{
 | 
						||
                    Node pomNode = asNode()
 | 
						||
                    pomNode.dependencies.'*'.findAll() {
 | 
						||
                        //将所有的默认依赖移除
 | 
						||
                        //it.parent().remove(it)
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                pom {
 | 
						||
                    name = artifactId
 | 
						||
                    url = siteUrl
 | 
						||
                    licenses {
 | 
						||
                        license { //证书说明
 | 
						||
                           name=LicenseName // 开源协议名称
 | 
						||
                           url=LicenseUrl // 协议地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    developers {
 | 
						||
                        developer {
 | 
						||
                            id=DeveloperId // 开发者账号
 | 
						||
                            name=DeveloperName // 开发者名称
 | 
						||
                            email=DeveloperEMail // 开发者邮箱地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    //软件配置管理
 | 
						||
                    scm {
 | 
						||
                        connection=gitUrl
 | 
						||
                        developerConnection=gitUrl
 | 
						||
                        url=siteUrl
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                
 | 
						||
            } // 创建名为 release 的任务结束
 | 
						||
            
 | 
						||
            // WinBoLL Maven Snapshot 仓库传输任务
 | 
						||
            //
 | 
						||
            snapshotWinBoLL(MavenPublication) {
 | 
						||
                // 需要使用的变体,假设有free和pay两个变体,可以选择一个
 | 
						||
                //from components.free
 | 
						||
                
 | 
						||
                groupId = DefaultGroupId // 文件的groupId
 | 
						||
                artifactId = project.name //文件的名字
 | 
						||
                version = DefaultVersion + "-SNAPSHOT" //版本号
 | 
						||
    
 | 
						||
                //from components.java
 | 
						||
                // 必须有这个 否则不会上传AAR包
 | 
						||
                afterEvaluate { artifact(tasks.getByName("bundleReleaseAar")) }
 | 
						||
                // 上传source,这样使用方可以看到方法注释
 | 
						||
                //artifact generateSourcesJar
 | 
						||
                //要上传的aar路径
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-release.aar"
 | 
						||
                //artifact "$buildDir/outputs/aar/${project.getName()}-debug.aar"
 | 
						||
                
 | 
						||
                //对pom进行的操作
 | 
						||
                pom.withXml{
 | 
						||
                    Node pomNode = asNode()
 | 
						||
                    pomNode.dependencies.'*'.findAll() {
 | 
						||
                        //将所有的默认依赖移除
 | 
						||
                        //it.parent().remove(it)
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                pom {
 | 
						||
                    name = artifactId
 | 
						||
                    url = siteUrl
 | 
						||
                    licenses {
 | 
						||
                        license { //证书说明
 | 
						||
                           name=LicenseName // 开源协议名称
 | 
						||
                           url=LicenseUrl // 协议地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    developers {
 | 
						||
                        developer {
 | 
						||
                            id=DeveloperId // 开发者账号
 | 
						||
                            name=DeveloperName // 开发者名称
 | 
						||
                            email=DeveloperEMail // 开发者邮箱地址
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                    //软件配置管理
 | 
						||
                    scm {
 | 
						||
                        connection=gitUrl
 | 
						||
                        developerConnection=gitUrl
 | 
						||
                        url=siteUrl
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            } // 创建名为 snapshot 的任务结束
 | 
						||
        }
 | 
						||
        
 | 
						||
    }
 | 
						||
}
 |