-
Notifications
You must be signed in to change notification settings - Fork 2.4k
/
build.gradle
121 lines (108 loc) · 4.03 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
* Copyright (C) 2013 JFrog Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
id("com.jfrog.artifactory") version "5.+"
}
def javaProjects() {
subprojects.findAll { new File(it.projectDir, 'src').directory }
}
allprojects {
apply plugin: 'com.jfrog.artifactory'
group = 'org.jfrog.test.gradle.publish'
version = currentVersion
status = 'Integration'
repositories {
maven {
url "http://127.0.0.1:8081/artifactory/libs-release"
}
}
}
// Setting this property to true will make the artifactoryPublish task
// skip this module (in our case, the root module):
artifactoryPublish.skip = true
project('services') {
artifactoryPublish.skip = true
}
configure(javaProjects()) {
apply plugin: 'java'
apply plugin: 'maven-publish'
dependencies {
testImplementation 'junit:junit:4.7'
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact(file("$rootDir/gradle.properties"))
}
}
}
}
project('api') {
apply plugin: 'ivy-publish'
publishing {
publications {
ivyJava(IvyPublication) {
from components.java
artifact(file("$rootDir/settings.gradle")) {
name "gradle-settings"
extension "txt"
type "text"
}
// The config below will add a extra attribute to the ivy.xml
// See http://ant.apache.org/ivy/history/latest-milestone/concept.html#extra
descriptor.withXml {
asNode().info[0].attributes().put('e:architecture', 'amd64')
}
}
}
}
artifactoryPublish {
publications(publishing.publications.ivyJava)
properties {
simpleFile '**:**:**:*@*', simpleFile: 'only on settings file'
}
}
}
artifactory {
clientConfig.setIncludeEnvVars(true)
clientConfig.info.addEnvironmentProperty('test.adding.dynVar',new java.util.Date().toString())
contextUrl = 'http://127.0.0.1:8081/artifactory'
publish {
repository {
repoKey = 'libs-snapshot-local' // The Artifactory repository key to publish to
username = "${artifactory_user}" // The publisher user name
password = "${artifactory_password}" // The publisher password
// This is an optional section for configuring Ivy publication (when publishIvy = true).
ivy {
ivyLayout = '[organization]/[module]/ivy-[revision].xml'
artifactLayout = '[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]'
mavenCompatible = true //Convert any dots in an [organization] layout value to path separators, similar to Maven's groupId-to-path conversion. True if not specified
}
}
defaults {
// Reference to Gradle publications defined in the build script.
// This is how we tell the Artifactory Plugin which artifacts should be
// published to Artifactory.
publications('mavenJava')
publishArtifacts = true
// Properties to be attached to the published artifacts.
properties = ['qa.level': 'basic', 'dev.team' : 'core']
publishPom = true // Publish generated POM files to Artifactory (true by default)
publishIvy = true // Publish generated Ivy descriptor files to Artifactory (true by default)
}
}
}