gpt4 book ai didi

maven - Gradle无法发布多个Maven native Artifact

转载 作者:行者123 更新时间:2023-12-03 04:42:16 25 4
gpt4 key购买 nike

我似乎无法让Gradle将多个 Artifact 发布到Maven存储库。它出版了一些,但不是全部,我也不知道为什么。目标是为OS X和Windows构建的静态库的调试和发行版本(总共4个静态库)。 OS X库已存储,而Windows库未存储。如果我修改了过滤器的关闭方式,以使OS X库被过滤掉,则不会存储任何内容。

model {
buildTypes {
debug
release
}

platforms {
"osx-x86_64" {
operatingSystem "osx"
architecture "x86_64"
}

"windows-x86_64" {
operatingSystem "windows"
architecture "x86_64"
}
}

toolChains {
// OS X and Windows toolchains (Clang and Mingw) described here
// - they build the artifacts I wish to store ok
// just removed for clarity
}

} // end of model

libraries {
saveMe {}
}

nativeArtifacts {
libSaveMe {
from (libraries.saveMe) { it instanceof StaticLibraryBinary &&
(it.targetPlatform.name == "osx-x86_64" ||
it.targetPlatform.name == "windows-x86_64")
// if I make this closure on the line above something like:
// it instanceof StaticLibraryBinary && it.targetPlatform.name == "windows-x86_64"
// then nothing is saved in the Maven repo
}
}
}

publishing {
repositories {
maven {
credentials {
username = 'user'
password = 'password'
}
url "http://hostname.com/path/to/repo"
}
}
publications {
mavPub(MavenPublication) {
from nativeArtifacts.libSaveMe
}
}
}

我正在使用一个非常好的外部插件( Gradle Native Artifacts Plugin,由Serge Gebhardt @sgeb(?)编写),但是在尝试理解他的代码(我是Gradle的初学者)之前,我想我会问问一下如果有明显的事情我做错了。

我尝试将logger语句放入过滤器关闭中,可以看到正在尝试所有可能的调试/发布静态/共享库组合,并且过滤器正确地标识了是否应该保存库的是/否,但是它没有不能到达Maven。

我可以在发布{}(或任务)中放入调试行,以查看nativeArtifacts.libSaveMe集合的实际内容是什么?

最佳答案

好的,所以故事的寓意是:永远不要假设,检查。在这种情况下,请检查以下语句:

toolChains {
// OS X and Windows toolchains (Clang and Mingw) described here
// - they build the artifacts I wish to store ok
// just removed for clarity
}

是真的。不是。

发布任务是由CI服务器完成的,并且工具链无法在CI服务器上构建Windows构件,但是它在我的本地计算机上正常工作(由于mingw工具链的安装中出现配置错误)。工具链失败的发生是没有错误的(除非在--debug中运行),因此对我而言是不可见的,因为该工具链已由未创建构件的非Windows编译器所取代。

关于maven - Gradle无法发布多个Maven native Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25612048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com