我最近从Maven转到了Gradle。到目前为止,我的Jenkins声明性管道包括一个阶段,在这个阶段我们生成了打包的工件并将其发布到Nexus:
pipeline {
...
stages {
stage ('Build Stage') {
steps {
...
sh "mvn clean deploy"
...
}
}
通过这种方式,我们使用构建工具(Maven)使用它的一个插件(Maven deploy plugin)来部署工件。使用Nexus Jenkins插件,我们可以解耦这些功能,这对我来说是有意义的:Gradle负责构建、测试和打包工件,而Jenkins Nexus插件将把它上传到Nexus。
重点是,遵循Jenkins Nexus插件文档,我必须使用如下步骤:
nexusPublisher nexusInstanceId: 'localNexus', nexusRepositoryId: 'releases', packages: [[$class: 'MavenPackage', mavenAssetList: [[classifier: '', extension: '', filePath: 'buildmavenCoordinate: [artifactId: 'myproject'/lib/myproject-1.0.0.jar']], , groupId: 'com.codependent.myproject', packaging: 'jar', version: '1.0.0']]]
由于我想产生一个可重用的管道,所以我不想在步骤中硬编码以下属性:
def pom = readMavenPom file: 'pom.xml'
...
nexusPublisher ... mavenCoordinate: [artifactId: pom.artifactId
...
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
group = 'com.codependent.myproject'
version = '1.0.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test {
systemProperties 'property': 'value'
}
...
您正在管道中使用Groovy吗?Gradle不提供解析POM文件本机支持。我建议您在Groovy中使用XmlSlurper。
如果您的管道在Groovy中,您可以使用以下代码使用Gradle读取这些属性:
def pom = new XmlSlurper().parse(new File('pom.xml'))
def version = pom.version
def artifactId = pom.artifactId
def groupId = pom.groupId
如果需要,可以直接打印变量来检查这些值:
println 'my pom version ' + pom.version
println 'my pom version ' + pom.artifactId
println 'my pom version ' + pom.groupId
我正在做一个使用Maven 3.0.4的项目。 一个示例项目结构 我们使用artifactory作为存储库管理工具,使用Jenkins作为CI构建服务器。artifactory/Jenkins插件也已安装。 如果我在Jenkins中将一个项目设置为Maven 2/3人力资源模型项目,并添加一个构建后步骤以部署到artifactory,那么一个jar工件就会部署到artifactory。 对模型项目
Java服务端的Web组件(JavaEE)提供动态扩展能力允许你在web容器或者应用服务器中运行你的程序,就像Servlet这个名字的意思,接收客户端的请求返回响应,在MVC架构中充当控制器的角色,Servlet的响应通过视图组件--JSP来渲染,下图展示了一个典型的MVC架构的Java应用。 WAR(web application archive)用来捆绑Web组件、编译生成的class文件以及
我尝试使用jenkins管道将gradle工件上传到maven存储库。我关注了詹金斯的管道工作 如参考文件所述,应将构建工件部署到工件库。然而,在我的案例中没有部署构建工件。 我已经检查了并发现它是空的。 根据一些提示,我将以下代码放入我的: 然而,前面的没有帮助,仍然没有部署工件。 问题出在哪里?我错过了什么? 感谢您的任何意见。 编辑 我忘了为gradle deployer添加服务器设置。通过
我有一个多项目的gradle构建,其中一个子项目是应用Artifactory插件(版本4.2.0),并配置contextUrl和resolve repoKey。 它设置一个简单的配置和依赖项,然后有一个复制任务来检索依赖项作为zip文件并将其解压缩到目录中。 然而,当复制任务运行时,我得到下面的错误。我做错了什么?这是Artifactory插件或gradle的问题,还是。。。? 问题似乎与该项目是
在运行时是否可以获得my war的maven deploy插件在运行时生成的完整工件版本/内部版本号? 如果maven进程生成并打包了一个包含值的属性文件,就可以了。 请记住,我的项目为每个部署生成唯一的(有时间戳的)工件版本。
我已经用Gradle创建了一个JavaFX应用程序,并希望将它及其所有依赖项和JRE导出到exe中,最好的方法是什么? 我尝试使用Gradle-launch4j提供的快速启动,但exe没有启动,而是在IDE中启动,当我从命令行运行时,我得到错误