将其他内容与gradle一起发布到Nexus之外



我正在尝试将Gradle与Ant结合使用来构建我们的OpenEDGE项目。OpenEdge是几个世纪以前的4GL语言。; - )

无论如何,我已经设法下载了一些JAR依赖项,但是现在我陷入了如何将PL文件(进度库)发布到Nexus存储库中。事情是像Maven一样,Gradle似乎也用于Java项目。

这是我的脚本(我也有一个设置。

apply plugin:'java'
apply plugin: 'maven-publish'
group 'be.mips'
version = '1.4.0-SNAPSHOT'
repositories {
  /*
  Gradle uses the same logic as Maven to identify the location of your local
  Maven cache. If a local repository location is defined in a settings.xml,
  this location will be used. The settings.xml in USER_HOME/.m2 takes precedence
  over the settings.xml in M2_HOME/conf. If no settings.xml is available, Gradle
  uses the default location USER_HOME/.m2/repository.
  */
  mavenLocal()
  maven {
    credentials {
      username '****'
      password '****'
    }
    url "http://srv-ci-nexus:8082/nexus/content/repositories/MadeApplReleases/"
    url "http://srv-ci-nexus:8082/nexus/content/repositories/MadeApplSnapshots/"
  }
  mavenCentral()
}
def stompProgressLibraryFile = file('dist/lib/STOMP.PL')
artifacts {
  archives stompProgressLibraryFile
}
publishing {
  publications {
    mavenJava(MavenPublication) {
      from components.java
      artifact stompProgressLibraryFile
    }
  }
  repositories {
    maven {
      // default credentials for a nexus repository manager
      credentials {
        username '****'
        password '****'
      }
      // url to the releases maven repository
      url "http://srv-ci-nexus:8082/nexus/repositories/snapshots"
    }
  }
}
configurations {
  antconf
}
dependencies {
  antconf 'be.mips:mips-progress-ant-tasks:1.5.8-SNAPSHOT',
  'be.mips:mips-pct:1.0-SNAPSHOT',
  'ant-contrib:ant-contrib:1.0b3'
}
/* Loads the jars */
ClassLoader antClassLoader = org.apache.tools.ant.Project.class.classLoader
configurations.antconf.each {
  File f -> antClassLoader.addURL(f.toURI().toURL())
}
/* Extend clean task */
clean.doFirst {
  delete '_ant_rcode', 'src', 'dist'
  println 'deleted directories'
}
/* Create dist/lib directory as prolib does not create directory automatically */
task init(dependsOn: clean) {
  doLast{
    project.file('dist/lib').mkdirs()
    println 'created dist/lib'
  }
}
ant.importBuild 'build.xml'

运行gradle发布给我下一个输出:

c: workspace git-repositories openEDGE stomp.git> gradle -ddlc = C: OpenEDGE 116 dlc Publish:generatePomfileformavenjavaPublication:CompileJava最新 :processResources最新:最新课程:jar最新 :PublishMavenJavaPublicationTomavenRepository找不到元数据 be.mips:stomp:1.4.0-snapshot/maven-metadata.xml (http://srv-ci-nexus:8082/nexus/repositories/napshots)上传 http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/stomp/1.4.0-snapshot/stomp-1.4.0-20161227.115652-1.pom 无法将工件转移为。 从/到远程 (http://srv-ci-nexus:8082/nexus/储存库/快照):无法 写入资源 'be/mips/stomp/1.4.0-snapshot/stomp-1.4.4.0-20161227.115652-1.pom' 上传 http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/stomp/1.4.0-snapshot/stomp-1.4.0-20161227.115652-1.jar 无法将工件转移为。 从/到远程 (http://srv-ci-nexus:8082/nexus/储存库/快照):无法 写入资源 'be/mips/stomp/1.4.0-snapshot/stomp-1.4.4.0-20161227.115652-1.jar'' 上传 http://srv-ci-nexus:8082/nexus/repositories/snapshots/be/mips/stomp/stomp/1.4.0-snapshot/stomp-1.4.0-4.0-20161227.115652-1.pl 无法将工件转移为。 从/到远程 (http://srv-ci-nexus:8082/nexus/储存库/快照):无法 写入资源 'be/mips/stomp/1.4.0-snapshot/stomp-1.4.4.0-20161227.115652-1.pl' :PublishMavenJavaPublicationTomavenRepository失败

失败:构建失败而异常。

  • 出了什么问题:执行任务失败':PublishMavenJavaPublicationTomavenRepository'。

    未能将出版物" mavenjava"发布到存储库" maven" 无法部署工件:无法转移伪像是。 (http://srv-ci-nexus:8082/nexus/储存库/快照):无法 写入资源 'be/mips/stomp/1.4.0-snapshot/stomp-1.4.0-20161227.115652-1.pom'

  • 尝试:使用-stacktrace选项运行以获取堆栈跟踪。使用-Info或-debug选项运行以获取更多日志输出。

构建失败

总时间:1.089秒

我注意到的第一件事是我不需要这些Java任务。:compilejava,:processResource,:class,:jar ...

基本上,我有一个build.xml ant文件来完成我想要的一切。但是蚂蚁的依赖管理非常差。因此,我决定将Gradle与Ant结合使用。我希望Gradle为我进行依赖管理。到目前为止,下载依赖项似乎工作正常(必须尝试使用PL而不是JAR)。但是发布了罐子以外的其他内容,您该怎么做?

阅读许多Gradle在线文档,但所有示例似乎都基于Java。

如果您不需要编译Java代码,请使用base插件而不是java。另外,您应该删除from components.java

apply plugin: 'base'
apply plugin: 'maven-publish'
publishing {
  publications {
    mavenJava(MavenPublication) {
      artifact stompProgressLibraryFile
    }
  }
}

您的下一个错误"无法写入资源" 很可能不是Gradle问题,请查看对存储库的写入访问。在发布到远程存储库之前,请尝试在本地存储库中发布:

应用插件:

apply plugin: "maven"

执行任务install

$ ./gradlew install

相关内容

  • 没有找到相关文章

最新更新